12

我遇到了以下问题:每当我在应用程序中将播放和录制类别设置为音频会话时,AirPlay 就变得不可用:

[[AVAudioSession sharedInstance]
        setCategory: AVAudioSessionCategoryPlayAndRecord
        error: &setCategoryError];

此调用使 AirPlay 消失并立即将音频重新路由到扬声器。

该问题可以很容易地重现,例如在avTouchXcode 文档的示例项目中,通过将AVAudioSessionCategoryPlayback类别 替换为AVAudioSessionCategoryPlayAndRecord: 在原始示例中,AirPlay 选择器是可见的,并且允许更改输出源,而AVAudioSessionCategoryPlayAndRecord选择器在类别中消失了。

是否有适当的方法切换到AVAudioSessionCategoryPlayAndRecord类别以便 AirPlay 仍然可用?

已经问过这样的问题,但没有得到任何答案。)

4

3 回答 3

1

您尝试使用哪种 AirPlay 设备?它有麦克风吗?

如果没有,iOS 在使用 PlayAndRecord 类别时不会将其作为选项显示,因为该设备无法播放录制。不过,它会在使用 Play 类别时出现。

另外,如果您使用的设备是蓝牙设备,您是否将 AVAudioSessionCategoryOptionAllowBluetooth 设置为 YES?

于 2013-10-10T20:50:31.290 回答
0

我认为您应该在上面添加以下代码AVAudioSession。我希望它有效。

NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError];

if (setCategoryError) {
    // Handle error
}
于 2013-03-01T11:52:09.350 回答
-1

好吧,AirPlay 和 PlayAndRecord 类别只是不兼容。这就是我从 Apple 论坛中学到的。

当音频输出发生在其他地方时,为什么需要设备上的音频输入?

于 2012-11-05T19:41:02.440 回答