swift開發(fā):avplayer播放音頻和視頻

一名安卓老鳥邊研究學(xué)習(xí)swfit邊開發(fā)ios應(yīng)用,簡單記錄分享一下。最近開發(fā)ios應(yīng)用遇到多媒體這塊,播放在線音頻和視頻,用安卓的經(jīng)驗,github找了半天輪子,發(fā)現(xiàn)沒有完美給小白用的輪子,各種百度,谷歌,主要還是得靠谷歌,終于基本解決了。除了tableview里面播放還未寫代碼實現(xiàn),其它都已經(jīng)ok了。

使用了所謂唱吧的緩存框架:KTVHTTPCache,自行g(shù)ithub,他們自己寫的唱吧開源,是不是真的我就不造了,反正可以用。

用AVPlayer可以支持比較多的格式,ios官網(wǎng)提供,穩(wěn)定可靠,要非常豐富的,估計要自行開發(fā)擴展那個ffmpeg框架了,大牛請自便。

在線音頻播放:

????????let url_string = KTVHTTPCache.proxyURLString(withOriginalURLString: mp3_url)

? ? ? ? let Mp3Url = URL(string: url_string!)

? ? ? ? player = AVPlayer(url: Mp3Url!)

? ? ? ? player!.play()

第一句話是將在線音頻播放地址轉(zhuǎn)換為緩存框架的地址,然后給播放器,后面緩存就有那個框架搞定,播放本地文件就不需要了。

在線視頻播放:

????????let url_string =KTVHTTPCache.proxyURLString(withOriginalURLString: mp4_url)

? ? ? ? letMp4Url =URL(string: url_string!)

? ? ? ? avplayer=AVPlayer(url: Mp4Url!)

上面同樣是緩存地址轉(zhuǎn)換,下面是將AVPlayerViewController作為播放控制添加到頁面的UIView上,只添加AVPlayer是沒有播放控制的,需要自己實現(xiàn),喜歡用輪子的各種百度谷歌呀,這方便的還真不多,沒找到如何將AVPlayerViewController當作一個view放進一個指定的uiview,終于谷歌找到了一篇文章有說明如何實現(xiàn),照著做實現(xiàn)了,激動了一小下,這下全有了,播放暫停,進度條,全屏按鈕,齊活。

? ??????let playerController = AVPlayerViewController()

? ? ? ? playerController.player=avplayer

? ? ? ? video.addSubview(playerController.view)

? ? ? ? playerController.view.frame=video.bounds

? ? ? ? self.addChildViewController(playerController)? //將AVPlayerViewController添加為子view

? ? ? ? video.addSubview(playerController.view)

? ? ? ? playerController.didMove(toParentViewController:self)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容