AVPlayer 不支持 AirPlay

AVPlayer not working with AirPlay

我有一系列正在使用 AVPlayer 播放的 AVMutableComposition。当我通过扬声器、耳机或蓝牙播放时,一切都很好。然而,一旦我连接到 AirPlay,一切都崩溃了。

我可以播放一种资产,然后我尝试切换到一种新资产,我收到 AVAudioSessionMediaServicesWereResetNotification 并且设备与 AirPlay 断开连接。我尝试将 AVMutableCompositions 导出到文件,然后使用 AVURLAssets,但这似乎没有任何改变。

有人知道这里发生了什么吗?看来我将无法支持AirPlay...

我觉得我可以切换到 AVAudioPlayer,这会解决问题,但我正在生成几十个 AVMutableComposition,不想将它们读取和写入磁盘。

这是违反直觉的,但尝试设置

myPlayer.allowsExternalPlayback = NO;

文档对此并不完全清楚,但似乎这只会禁止视频播放。当我在我的应用程序(使用 AVPlayer)中执行此操作时,带有 AVComposition 的 Airplay 可以工作。甚至艺术品也能很好地显示出来(通过 MPNowPlayingInfoCenter)。