一名安卓老鸟边研究学习swfit边开发ios应用,简单记录分享一下。最近开发ios应用遇到多媒体这块,播放在线音频和视频,用安卓的经验,github找了半天轮子,发现没有完美给小白用的轮子,各种百度,谷歌,主要还是得靠谷歌,终于基本解决了。除了tableview里面播放还未写代码实现,其它都已经ok了。
使用了所谓唱吧的缓存框架:KTVHTTPCache,自行github,他们自己写的唱吧开源,是不是真的我就不造了,反正可以用。
用AVPlayer可以支持比较多的格式,ios官网提供,稳定可靠,要非常丰富的,估计要自行开发扩展那个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是没有播放控制的,需要自己实现,喜欢用轮子的各种百度谷歌呀,这方便的还真不多,没找到如何将AVPlayerViewController当作一个view放进一个指定的uiview,终于谷歌找到了一篇文章有说明如何实现,照着做实现了,激动了一小下,这下全有了,播放暂停,进度条,全屏按钮,齐活。
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)