ios – AVPlayer – 播放时切换流质量

前端之家收集整理的这篇文章主要介绍了ios – AVPlayer – 播放时切换流质量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用AVPlayer播放youtube视频,对于每个YouTube视频ID,我检索了几个不同质量的流网址.

我想根据网络状态播放特定的流质量.例如,如果用户在3G上,我想播放质量最低的URL,但如果用户移动到wifi,我想无缝切换到质量更好的流.

这不是什么新鲜事,youtube正在他们的应用程序和许多其他人这样做.

所以我想知道用AVPlayer进行这种切换的最佳方法是什么,我不希望用户注意到切换,而不会暂停视频播放或缓冲.
有什么建议吗?

我不确定youtube服务器是否支持这种功能,或者我是否需要在客户端进行此功能.

解决方法

你应该看看HTTP直播上的Apple documentation.

实现所需切换类型的唯一方法是使用m3u索引文件和包含视频数据的TS文件.

您连接到索引文件并存储其内容,这将是多个URL以及带宽要求.参见示例here.然后使用
Reachability类检查网络状态并连接到相应的流.启动Reachability通知程序并通过更改您连接的流来对事件做出反应.这将导致下载和缓冲属于流的TS文件以进行回放,从而实现所需的切换类型.

正如我之前所说,缺点是需要使用TS文件.这意味着您必须从Youtube下载视频文件,使用Apple提供的mediafilesegmenter命令行工具准备并存储在FTP服务器上!根本不理想,但据我所知,这是唯一的方法.

猜你在找的iOS相关文章