前言
我写了一个iOS流媒体播放器Demo:TDPlayer,需要的朋友可下载,播放器底层播放这层本文就不做赘述了,本文主要针对TDPlayer(播放与UI)的分解使用讲解,Demo实际效果如下:
集成与使用
导入
Demo里TDPlayer直接拖往工程里,就可直接使用。
目录
TDPlayerConfig
TDPlayerConfig.h配置文件,一些自定义配置可在里面设置。
TDPlayerView
播放器View层,此层在Player上面,也在播放器UI层的最低层,作为中间层来执行UI层与Player数据交互,对外交互也应是此View来完成。
TDPlayerTopBar
播放器Top层,可设置标题,有左右按钮交互事件等。
TDPlayerBottomBar
播放器Bottom层,为用户与播放交互层,播放\暂停,快进\快退,音量调节,上\下一页都在这层实现。
TDPlayerStatusView
该View简单来所就是用户友好提示页,根据视频的状态来显示加载、正常、结束、失败、错误状态UI,还提供重新播放功能。
TDPlayerLoadingView
视频加载过程中出现的加载View,以及还支持显示当前的加载网速。
使用
其实对外的接口,我已经封装得比较简单易懂了,外部使用直接使用TDPlayerView这个类,如下:(Demo上还有代理回调的使用)
1 | tdPlayerView = [[TDPlayerView alloc] initWithFrame:CGRectMake(0, 0, selfWidth, selfHeight)]; |
值得注意的是:iOS播放器是不支持ts后缀地址播放的,替换成m3u8后缀即可,实际m3u8是一个索引文件,播放时,会根据索引去下载对应的ts分片进行播放。
总结
优缺点
TDPlayer将播放层及UI层统一进行了封装,如果你的需求仅仅是播放一个视频,对UI要求不高,这套使用起来还是很方便的。
但是,缺点是什么呢?耦合度太高,播放层与UI层粘性高,不利用扩展或修改。
推荐
这里提供一个无UI的纯播放适配器TDPlayerLite,这个将AVPlayer一些回调乱调、状态不友好的问题内部解决了,并封装了一套用户友好的代理出来,很好集成与使用。
此纯播放器SDK,具体集成与使用详见:iOS纯播放器(适配器)