Objective c AvaudioSessionCategoryPlay和Record使AirPlay不可见
我遇到以下问题:每当我在应用程序中将播放和录制类别设置为音频会话时,AirPlay将不可用:Objective c AvaudioSessionCategoryPlay和Record使AirPlay不可见,objective-c,ios,ipad,airplay,avaudiosession,Objective C,Ios,Ipad,Airplay,Avaudiosession,我遇到以下问题:每当我在应用程序中将播放和录制类别设置为音频会话时,AirPlay将不可用: [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: &setCategoryError]; 此呼叫使AirPlay消失,并立即将音频重新路由到扬声器 例如,通过将AVAudioSessionCategoryPlayback类别替换为AVA
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryPlayAndRecord
error: &setCategoryError];
此呼叫使AirPlay消失,并立即将音频重新路由到扬声器
例如,通过将AVAudioSessionCategoryPlayback
类别替换为AVAudioSessionCategoryPlayback
类别,可以很容易地在Xcode文档中的示例项目avTouch
上重现该问题:在原始示例中,AirPlay picker可见并允许更改输出源,而使用AVAudioSessionCategoryPlayAndRecord
类别时,选择器将消失
是否有合适的方法切换到avaudioSessionCategoryPlay和Record
类别,以便AirPlay仍然可用
(像这样的问题一直存在,但没有得到任何答案。)嗯,AirPlay和PlayAndRecord类别是不兼容的。 这就是我从苹果论坛学到的
当音频输出发生在其他地方时,为什么您需要在设备上输入音频?我认为您应该在上面添加下面的代码
AVAudioSession
。我希望它能起作用
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError];
if (setCategoryError) {
// Handle error
}
你想用什么AirPlay设备?它有麦克风吗 如果没有,iOS在使用PlayAndRecord类别时不会将其作为选项,因为该设备无法播放和录制。但在使用Play类别时,它会显示出来
另外,如果您正在使用的设备是蓝牙设备,您是否已将AVAudioSessionCategoryOptionAllowBluetooth设置为YES?您可能需要尝试使用一些专用API。检查这是否有帮助。他们提到了一些私人API。@ACB:谢谢!我看过上面提到的文章,但正如你所说,他们使用的是私有API,我不能使用,因为我工作的项目是通过App Store分发的。@Anastasia你有解决方案吗?我和你面临着同样的问题。Thanks@Jacky不,我没有办法。Jonathan Arbogast的想法听起来很有可能。该应用程序播放视频流(可能通过AirPlay输出声音)并同时记录所述流。有意义吗?关键是,音频在插入式耳机中正常工作,所以我很自然地认为AirPlay连接的耳机也应该以同样的方式工作。-1:你想要它的原因有很多。我的一位客户希望使用我的音频监控软件通过airplay播放音频,然后监控iPhone记录的内容(在测量模式下),来执行房间响应检查。如此恼人以至于苹果完全阻止了这一切。