【发布时间】:2021-12-22 02:46:54
【问题描述】:
我正在做一个项目,我有一个 AVPlayer 实例,它能够播放我从后端检索到的不同音频内容,从播客到音乐和流媒体。每个内容都有两种类型的 url:一种是 mp3,另一种是 m3u8 文件。所有 mp3 文件都运行良好。然而,一些 m3u8 文件可以正常工作,而其他文件则不能。特别是那些不工作的人会导致 AVPlayer 因错误而崩溃:
Error Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action"
UserInfo={NSLocalizedRecoverySuggestion=Try again later.,
NSLocalizedDescription=Cannot Complete Action.}
我不明白问题出在哪里。根据this answer,这是一个错误的 Manifest 文件,在我的情况下是 - 例如 - 以下内容:
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,URI="_64/index.m3u8",GROUP-ID="2@48000-64000",NAME="AAC 64",DEFAULT=NO,AUTOSELECT=NO
#EXT-X-MEDIA:TYPE=AUDIO,URI="_80/index.m3u8",GROUP-ID="2@48000-80000",NAME="AAC 80",DEFAULT=NO,AUTOSELECT=NO
#EXT-X-MEDIA:TYPE=AUDIO,URI="_96/index.m3u8",GROUP-ID="2@48000-96000",NAME="AAC 96",DEFAULT=NO,AUTOSELECT=NO
#EXT-X-STREAM-INF:BANDWIDTH=133336,CODECS="mp4a.40.2",AUDIO="2@48000-96000"
_96/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=100641,CODECS="mp4a.40.2",AUDIO="2@48000-64000"
_64/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=116989,CODECS="mp4a.40.2",AUDIO="2@48000-80000"
_80/index.m3u8
在 Apple 论坛上,我发现 this answer 说 iOS 14+ 出现故障。很遗憾,我无法使用 iOS 13 物理设备进行测试。
你有什么建议吗?
在 Xcode 13.1 和 iPhone 7plus 和 iOS 15.0.2 上测试。
【问题讨论】:
-
不幸的是,在模拟器上玩 m3u8 时会出现一些问题。你在真机上也有同样的错误吗?
-
@Mr.SwiftOak 我用真机测试过。我提到的 iPhone 7plus 是一款真正的设备。
标签: ios swift xcode audio avplayer