Swift搭建本地http服务器,实现外部视频即时播放
最近项目有个小需求,需要ios实现手机作为服务端,将内部视频文件,在外面能够直接访问
结合网上的例子,实现如下:
1、基于CocoaHTTPServer实现
2、可用pod集成,也可直接拖动文件集成
pod集成:
1、新建项目,Podfile文件如下,执行install
- pod 'CocoaHTTPServer'
2、直接拖文件
a、先下载文件CocoaHTTPServer,如下:
导入CocoaHTTPServer-master
目录下的Core文件夹
导入Vendor
目录下的CocoaAsyncSocket
、CocoaLumberjack
文件夹
3、在 ViewController里写开启代码
a、由于是swift项目,而以上库都是基于OC的,所以需要在桥接文件import头
b、初始化httpServer
- httpServer = HTTPServer()
- httpServer.setType("_http.tcp")
- //1、播放沙盒文件
- print("\(NSHomeDirectory())/Documents")
- //设置http服务器根目录
- httpServer.setDocumentRoot("\(NSHomeDirectory())/Documents")
注意:
1、以上的根目录我是直接定位到Documents下的,这里可自行更换
2、这里我直接拿沙盒的文件播放的,所以demo下载后,需要在沙盒里先添加一个视频,或者直接把我项目里放置的那个视频拖进去。
c、开启、关闭。(这里我为了省事,直接点击屏幕进行控制)
- override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
- isOPen = !isOPen
- if isOPen{
- do{
- try httpServer.start()
- print( "请打开以下网址: http://\(HTTPHelper.ipAddress() ?? ""):\(httpServer.listeningPort())/1.mp4")
- }catch{
- print("启动失败")
- }
- }else{
- httpServer.stop()
- }
- }
d、开启后,注意打印的地址,拷贝到电脑的浏览器地址栏,可以直接下载,或者在vlc添加播放地址
(vlc可以直接百度下载即可。)
e、vlc里直接观看,当然其他播放器也可以,直接把播放地址添加下。注意:这里必须保证播放器所在局域网和手机一致。
视频播放时,可以快进、快退、暂停等操作。
写在最后:
1、以上只是一个简单的例子,实现了ios设备做服务端,外部设备做客户端,直接访问ios设备的资源(不仅仅是视频,其他文件同理)
2、pod集成和手动集成都是可以的,见上文
3、本文是swift版本的,如果需要oc版本,可参考:https://github.com/OPTJoker/CocoaHttpServer
Swift搭建本地http服务器,实现外部视频即时播放的更多相关文章
- Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析
默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...
- [转]World Wind Java开发之四——搭建本地WMS服务器
在提供地理信息系统客户端时,NASA还为用户提供了开源的WMS Server 服务器应用:World Wind WMS Server.利用这个应用,我们可以架设自己的WMS服务并使用自己的数据(也支持 ...
- Dnsmasq安装与配置-搭建本地DNS服务器
默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...
- 配置Yum源repo文件及搭建本地Yum服务器
分享一篇配置Yum源repo文件及搭建本地Yum服务器的方法,希望对大家有用. Yum源的话有三大类: Base Extra Epel Base:就是你下载的光盘镜像里面的DVD1Extra:就是你下 ...
- Windows下搭建本地SVN服务器【转】
转自:http://www.linuxidc.com/Linux/2015-01/111563.htm 本文介绍Windows下搭建本地SVN服务器的方法,网上资料比较少也比较旧,大都介绍的是旧版本S ...
- svn 使用TortoiseSVN server搭建本地SVN服务器
使用TortoiseSVN server搭建本地SVN服务器
- 利用 Nginx 反向代理搭建本地 yum 服务器
在政府,医院等单位有网络安全要求,对内外网进行物理隔离,然而内网主机无法访问互联网下载安装包,通过Nginx 反向代理搭建本地yum服务器实现内网主机安装包下载. Centos 8.2 部署 Ngin ...
- iOS:搭建本地的服务器
一.介绍 作为一个专业的程序员,不管你是前端还是移动端或者是后台,能够自己试着搭建一个本地的服务器还是很有必要的,有的时候,我们可以自己测试一些数据,很方便开发.其实,mac是自带有本地的服务器的,用 ...
- 使用Nginx搭建本地流媒体服务器
Mac搭建nginx+rtmp服务器 1.打开终端,查看是否已经安装Homebrew,直接输入命令 man brew 如果Mac已经安装了, 会显示一些命令的帮助信息. 此时输入Q退出即可, 直接进入 ...
随机推荐
- JDBC事务,银行转账,货物进出库等等。
1:转账业务 转账必须执行2个sql语句(update更新)都成功的情况下,提交事务,如果有一个失败,则2个都回滚事务2:事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACI ...
- python学习之基本数据类型
python的基本数据类型有数字.字符串.列表.字典.元祖.布尔值 一.数字 1.1.字符转换为数字 实例: a=" b=int(a) print(b+) 运行结果: 可以用type查看数据 ...
- 【Java】 剑指offer(18) 删除链表中重复的结点
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重 ...
- C6000 CSL 函数说明
转自:http://bbs.21ic.com/icview-741800-1-1.html 先来看一个例子 代码1 CSL_FINST(osdRegs->VIDWINMD, OSD_VIDWIN ...
- 洛谷 P1433 吃奶酪【DFS】+剪枝
题目链接:https://www.luogu.org/problemnew/show/P1433 题目描述 房间里放着n块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处 ...
- 计蒜客-跳跃游戏二 (简单dp)
题目链接:https://nanti.jisuanke.com/t/20 跳跃游戏二 给定一个非负整数数组,假定你的初始 ...
- hdu 1251:统计难题[【trie树】||【map】
<题目链接> 统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131 ...
- 002.Heartbeat部署及httpd高可用
一 前期准备 1.1 依赖准备 编译安装需要依赖的包,如gcc等: yum -y install gcc gcc-c++ make glibc kernel-devel kernel-headers ...
- hibernate中多对一问题
例如User类中有个Group引用对应数据库就是groupId的外键了. 外键映射成一个类对吧. <many-to-one name="groupId" column=&qu ...
- CNN做序列标注问题(tensorflow)
一.搭建简单的CNN做序列标注代码 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt TIME_ST ...