最近项目有个小需求,须要ios实现手机做为服务端,将内部视频文件,在外面可以直接访问ios
结合网上的例子,实现以下:git
一、基于CocoaHTTPServer实现github
二、可用pod集成,也可直接拖动文件集成swift
pod集成:浏览器
一、新建项目,Podfile文件以下,执行install服务器
pod 'CocoaHTTPServer'
二、直接拖文件tcp
a、先下载文件CocoaHTTPServer,以下:ide
导入CocoaHTTPServer-master
目录下的Core文件夹spa
导入Vendor
目录下的CocoaAsyncSocket
、CocoaLumberjack
文件夹3d
三、在 ViewController里写开启代码
a、因为是swift项目,而以上库都是基于OC的,因此须要在桥接文件import头
b、初始化httpServer
httpServer = HTTPServer() httpServer.setType("_http.tcp") //一、播放沙盒文件 print("\(NSHomeDirectory())/Documents") //设置http服务器根目录 httpServer.setDocumentRoot("\(NSHomeDirectory())/Documents")
注意:
一、以上的根目录我是直接定位到Documents下的,这里可自行更换
二、这里我直接拿沙盒的文件播放的,因此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里直接观看,固然其余播放器也能够,直接把播放地址添加下。注意:这里必须保证播放器所在局域网和手机一致。
视频播放时,能够快进、快退、暂停等操做。
写在最后:
一、以上只是一个简单的例子,实现了ios设备作服务端,外部设备作客户端,直接访问ios设备的资源(不单单是视频,其余文件同理)
二、pod集成和手动集成都是能够的,见上文
三、本文是swift版本的,若是须要oc版本,可参考:https://github.com/OPTJoker/CocoaHttpServer