AVPlayerLayer 不在 iOS 11 中渲染离线 HLS 视频

Posted

技术标签:

【中文标题】AVPlayerLayer 不在 iOS 11 中渲染离线 HLS 视频【英文标题】:AVPlayerLayer not rendering offline HLS video in iOS 11 【发布时间】:2017-10-17 13:30:53 【问题描述】:

我在 ios 11 中遇到了一个奇怪的问题。我有一个在 AVPlayer 中播放 HLS 视频的应用程序。在离线 HLS 视频的情况下开始视频音频正在播放但视频内容未在 AVPlayerLayer 上呈现。此问题仅在 iOS 11 及更高版本中出现。它在 iOS 10 中完美运行。但同时在线 HLS 内容在 iOS 11 和 iOS 10 中完美播放。

这似乎是 iOS 11 中的一个错误,我在 Apple's sample code 中进行了检查。

我在 iOS 11 设备上运行示例代码进行检查。

如果这不是 iOS 11 中的错误,那么如何解决这个问题。

【问题讨论】:

我也面临同样的问题。我已经在一定程度上缩小了范围。下载视频时,正在下载最低比特率的流,它在 .m3u8 文件中只有音频标签。有什么解决办法吗? @vivin 这个问题通过 iOS SDK 中的修复解决了。 【参考方案1】:

这个问题现在已经解决了。这是 iOS 11.0 中的错误,但现在已在 iOS 11.2 中修复。

我使用的是 Xcode 9.2 最新 iOS SDK 11.2 版本

【讨论】:

能否请您分享代码以使用用户默认保存的密钥文件离线播放。 [可选(错误域=AVFoundationErrorDomain 代码=-11863“请参阅 -[AVPlayerItem errorLog] 了解 1 个事件”UserInfo=NSLocalizedDescription=操作已停止,NSUnderlyingError=0x10ccd2590 错误域=CoreMediaErrorDomain 代码=-12885“(null)”,NSDebugDescription =查看 -[AVPlayerItem errorLog] 了解 1 个事件,NSLocalizedFailureReason=此内容不再可用。)]

以上是关于AVPlayerLayer 不在 iOS 11 中渲染离线 HLS 视频的主要内容,如果未能解决你的问题,请参考以下文章

在 AVPlayerLayer 和 AVPlayerViewController 中同步视频

c_cpp 令人敬畏的优化AVPlayer,可在UICollectionView / UITableView中平滑滚动AVPlayerLayer(在iOS10 +上测试)

c_cpp 令人敬畏的优化AVPlayer,可在UICollectionView / UITableView中平滑滚动AVPlayerLayer(在iOS10 +上测试)

Swift:调整 AVPlayerLayer 的大小以匹配其父容器的边界

无法在屏幕上获取 AVPlayerLayer 中视频的大小

无法触摸包含 AVPlayerLayer 的 UIView