Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Airplay播放音频会话类别播放和录制_Ios_Airplay_Avaudiosession - Fatal编程技术网

Ios 使用Airplay播放音频会话类别播放和录制

Ios 使用Airplay播放音频会话类别播放和录制,ios,airplay,avaudiosession,Ios,Airplay,Avaudiosession,我的应用程序使用麦克风并输出音频,因此我将音频会话设置为播放和录制类别,但这似乎禁用了Airplay。如果我将category设置为Play,Airplay可以很好地处理我的输出(但显然输入不起作用) 我尝试过覆盖扬声器的输出路径,以防它需要通过Airplay输出,但没有乐趣 有什么想法吗?如果要更改音频的播放位置,需要调用AudioSessionSetProperty,并将指定音频播放位置的常量传递给它。这些常数是 kAudioSessionOverrideAudioRoute_None,指定

我的应用程序使用麦克风并输出音频,因此我将音频会话设置为播放和录制类别,但这似乎禁用了Airplay。如果我将category设置为Play,Airplay可以很好地处理我的输出(但显然输入不起作用)

我尝试过覆盖扬声器的输出路径,以防它需要通过Airplay输出,但没有乐趣


有什么想法吗?

如果要更改音频的播放位置,需要调用AudioSessionSetProperty,并将指定音频播放位置的常量传递给它。这些常数是

kAudioSessionOverrideAudioRoute_None,指定您希望将音频路由到接收器(如果播放的是airplay),或

kAudioSessionOverrideAudioRoute_Speaker,指定音频应路由至手机底部的扬声器。

您可以尝试此代码

// Set AVAudioSession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

// Change the default output audio route
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
  sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);

你想用什么AirPlay设备?它有麦克风吗

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


另外,如果您使用的设备是蓝牙设备,您是否已将音频会话类别OptionalLowBluetooth设置为YES?

来自《音频会话编程指南》>中的“使用类别”>:

只有特定类别和模式支持AirPlay。以下类别支持Airplay的镜像和非镜像版本:

  • AVAudioSessionCategorySoloAmbient
  • AVAudioSessionCategoryAmbient
  • AVAudioSessionCategoryPlayback

AvaudioSessionCategoryPlay和Record
类别仅支持镜像Airplay。

我们可以在设置音频会话的位置查看您的代码吗?AudioSessionSetProperty已弃用