我遇到以下问题:每当我在我的应用程序中将播放和录制类别设置为音频会话时,AirPlay就不可用:
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryPlayAndRecord
error: &setCategoryError];
此调用使AirPlay消失并立即将音频重新路由到扬声器。
问题可以很容易地重现,例如在Xcode文档中的示例项目avTouch
中,将AVAudioSessionCategoryPlayback
类别替换为AVAudioSessionCategoryPlayAndRecord
:在原始示例中,AirPlay选择器可见并允许更改输出源,而使用AVAudioSessionCategoryPlayAndRecord
选择器消失的类别。
是否有正确的方式切换到AVAudioSessionCategoryPlayAndRecord
类别以便AirPlay仍可用?
(像这样的问题是already asked,但没有得到任何答案。)
答案 0 :(得分:1)
您尝试使用哪种AirPlay设备?它有麦克风吗?
如果没有,iOS在使用PlayAndRecord类别时不会将其作为选项显示,因为该设备无法播放和记录。它会在使用Play类别时显示。
此外,如果您使用的设备是蓝牙设备,您是否将AVAudioSessionCategoryOptionAllowBluetooth设置为YES?
答案 1 :(得分:0)
我认为您应该在AVAudioSession
上方添加以下代码。我希望它有效。
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError];
if (setCategoryError) {
// Handle error
}
答案 2 :(得分:-1)
嗯,AirPlay和PlayAndRecord类别只是不兼容。 这就是我从Apple论坛学到的东西。
当音频输出发生在其他地方时,为什么需要在设备上输入音频?