一名安卓老鳥邊研究學習swfit邊開發(fā)ios應用,簡單記錄分享一下。最近開發(fā)ios應用遇到多媒體這塊治泥,播放在線音頻和視頻,用安卓的經驗遮精,github找了半天輪子居夹,發(fā)現(xiàn)沒有完美給小白用的輪子,各種百度本冲,谷歌准脂,主要還是得靠谷歌,終于基本解決了檬洞。除了tableview里面播放還未寫代碼實現(xiàn)狸膏,其它都已經ok了。
使用了所謂唱吧的緩存框架:KTVHTTPCache添怔,自行github湾戳,他們自己寫的唱吧開源闷板,是不是真的我就不造了,反正可以用院塞。
用AVPlayer可以支持比較多的格式,ios官網提供性昭,穩(wěn)定可靠拦止,要非常豐富的,估計要自行開發(fā)擴展那個ffmpeg框架了糜颠,大牛請自便汹族。
在線音頻播放:
????????let url_string = KTVHTTPCache.proxyURLString(withOriginalURLString: mp3_url)
? ? ? ? let Mp3Url = URL(string: url_string!)
? ? ? ? player = AVPlayer(url: Mp3Url!)
? ? ? ? player!.play()
第一句話是將在線音頻播放地址轉換為緩存框架的地址,然后給播放器其兴,后面緩存就有那個框架搞定顶瞒,播放本地文件就不需要了。
在線視頻播放:
????????let url_string =KTVHTTPCache.proxyURLString(withOriginalURLString: mp4_url)
? ? ? ? letMp4Url =URL(string: url_string!)
? ? ? ? avplayer=AVPlayer(url: Mp4Url!)
上面同樣是緩存地址轉換元旬,下面是將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)