Swift搭建本地http服务器,实现外部视频即时播放

最近项目有个小需求,须要ios实现手机做为服务端,将内部视频文件,在外面可以直接访问ios

结合网上的例子,实现以下:git

一、基于CocoaHTTPServer实现github

二、可用pod集成,也可直接拖动文件集成swift

 

pod集成:浏览器

一、新建项目,Podfile文件以下,执行install服务器

pod 'CocoaHTTPServer'

 

二、直接拖文件tcp

a、先下载文件CocoaHTTPServer,以下:ide

导入CocoaHTTPServer-master目录下的Core文件夹spa

导入Vendor目录下的CocoaAsyncSocketCocoaLumberjack文件夹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

相关文章
相关标签/搜索