我目前在使用 AVPlayer 和 AVAsset 时遇到了一些麻烦,以便使用 AirPlay 将视频转换到外部屏幕。
添加 AVRoutePickerView 以获得 AirPlay 按钮后,我能够成功地将视频转换到使用 AirPlay,从远程 URL 创建一个 AVAsset。
如果我对之前从应用程序下载的视频文件(并且它仍在内部应用程序存储中)尝试相同的操作,AVPlayer 会失败并给我一个错误代码 (-11870)。在未启用 AirPlay 的情况下,本地视频仍能正常播放。
经过几次搜索,我发现错误代码指的是 externalPlaybackNotSupportedForAsset ,尽管没有对此或任何提及此错误的进一步解释。
我偶然发现 this issue关于 AVAssetReferenceRestrictions 并认为它可以帮助我解决问题,但即使更改了限制参数或设置了选项:参数为 无 初始化 AVAsset 对象时不起作用。
值得注意的是,使用 Google Cast 进行转换也不适用于本地文件,而远程视频文件可以正确转换。
有谁知道如何处理这个问题?
我使用的是 XCode 11 和装有 iOS 13.5.1 的 iPhone 6S。
亲切的问候
最佳答案
对于那些只想播放本地音频文件(即音乐)的人,请务必设置 AVPlayer 的 allowsExternalPlayback
至 false
.通过设置该标志,AirPlay 可以正常播放本地文件。
关于ios - 尝试使用 AirPlay 转换本地视频文件返回 'externalPlaybackNotSupportedForAsset' (-11870),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62430574/