一名安卓老鳥邊研究學(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)