ios - AVPlayer 在加密的 HLS 素材上崩溃

标签 ios avplayer http-live-streaming

我遇到一个问题,当播放加密的 HLS Assets 时,我在 URLConnectionClient 中深入获取 EXC_BAD_ACCESS,并且加密 key 丢失。 MPMovieViewController 没有问题,它只是无法播放,但正如我提到的,当 AVPlayer 无法检索解密 key 时我会崩溃。

比如这个:

    AVPlayer *player = [[AVPlayer alloc] initWithURL:
        [NSURL URLWithString:@"http://192.168.1.69/prog_index.m3u8"]];

如果文件 prog_index.m3u8 被加密并且解密 key 不可用,将在单独的线程中崩溃(具体为 com.apple.coremedia.networkbuffering)。我已经验证在可以加载解密 key 时它工作正常。

有人知道解决方法吗?

最佳答案

此错误已报告给 Apple。

解决方法是加载和解析 .m3u8 文件并加载相关的解密 key 。 如果发生错误,很容易优雅地处理它。

将下载的解密 key 存储在手机本地,并将 .m3u8 文件中的远程 URL 替换为本地路径。

最后,将修改后的 .m3u8 存储在本地并将该本地 URL 提供给 AVPlayer。

关于ios - AVPlayer 在加密的 HLS 素材上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670059/

相关文章:

ios - AVPlayerItem 初始 timedMetadata 未被观察(KVO)

ios - iPad 语音识别 - 开发人员访问?

objective-c - 如何在 Objective-C 中设置文本字段的委托(delegate)?

ios - Xcode Storyboard 组织和重复工作

c# - 检测用户跳到 AVPlayer 视频的结尾

ios - 使用多个 AVPlayer 时如何检测哪个视频结束了?

video - 命令行 'hls_segment_size' 使用段失败创建 TS 文件

bash - ts流制作中的ffmpeg两遍

unity-game-engine - 我想从 m3u 文件中提取视频后在 Unity 上播放直播

ios - FBSDKAppInviteDialog 要求登录而不是显示邀请对话框