如何使用AVPlayer停止AirPlay音频?

3
我正在开发一个iOS应用程序,出于某些原因,有时希望禁用远程设备上的AirPlay播放,并仅在iOS设备上本地播放视频,而不管用户的设置如何。我使用AVPlayer播放视频,目前无法更改。我将iOS 5.0+ AVPlayer属性allowsAirPlayVideo设置为NO,这可以防止视频在远程播放。但是,如果用户在iOS设备上打开了AirPlay,则音频仍通过远程设备流式传输。我在苹果的文档中没有看到相应的allowsAirPlayAudio标志,也没有在其他任何地方找到此问题的提及。例如,这个Stack Overflow问题:AirPlay的音频输出路线,谈论了“USB音频配件中的音频输出目标”,这听起来不像我需要的。我不想只关闭音频,我希望音频继续通过我的iOS设备播放。我有什么遗漏的吗?谢谢!
2个回答

0

这是我断开音频连接所做的操作,mConnectDisconnect 是布尔参数。

allowsExternalPlayback 将从Airplay中移除图像并在设备屏幕上播放它。

AVAudioSessionCategoryOptionDefaultToSpeaker 这个选项将允许你将音频切换到设备上。

AVAudioSession* session = [AVAudioSession sharedInstance];
    self.player.allowsExternalPlayback = mConnectDisconnect;
    if(allowsExternalPlayback){
            [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowAirPlay error:nil];
        
    }else{
        [session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
    }
[session setActive:true error:nil];
}
    

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接