swift开发:avplayer播放音频和视频

一名安卓老鸟边研究学习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)

你可能感兴趣的:(swift开发:avplayer播放音频和视频)