AVAudioSessionCategoryPlayAndRecord with Airplay

£可爱£侵袭症+ 提交于 2019-12-20 10:22:10

问题


My app uses the microphone and outputs audio, so I am setting my Audio Session to the Play and Record Category, but this seems to disable Airplay. If I set the category to Play, Airplay works fine with my output (but obviously the input doesn't work).

I've tried overriding the output route to speaker, in case it needed that to output over Airplay, but no joy.

Any ideas?


回答1:


What AirPlay device are you trying to use? Does it have a microphone?

If not, iOS won't present it as an option when using the PlayAndRecord category, because that device can't play and record. It would show up when using the Play category though.

Also, if the device you are using is a Bluetooth device, have you set AVAudioSessionCategoryOptionAllowBluetooth to YES?




回答2:


If you want to change where the audio is going you need to call AudioSessionSetProperty, and pass it the constant specifying where you want the audio to go. These constants are

kAudioSessionOverrideAudioRoute_None, which specifies that you wish the audio to be routed to the receiver (the airplay if that's where it is going), or

kAudioSessionOverrideAudioRoute_Speaker, which specifies that audio should be routed to the speaker at the bottom of the phone.




回答3:


You can try this code

// 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);



回答4:


From the Audio Session Programming Guide › Working with Categories › Choosing Categories and Modes for AirPlay:

Only specific categories and modes support AirPlay. The following categories support both the mirrored and non-mirrored versions of Airplay:

  • AVAudioSessionCategorySoloAmbient
  • AVAudioSessionCategoryAmbient
  • AVAudioSessionCategoryPlayback

The AVAudioSessionCategoryPlayAndRecord category only supports mirrored Airplay.



来源:https://stackoverflow.com/questions/11319100/avaudiosessioncategoryplayandrecord-with-airplay

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!