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

相關文章
相關標籤/搜索