| @@ -98,18 +98,19 @@ public: | |||||
| AudioSessionSetActive (true); | AudioSessionSetActive (true); | ||||
| UInt32 audioCategory = kAudioSessionCategory_MediaPlayback; | |||||
| UInt32 audioCategory = (numInputChannels > 0 && audioInputIsAvailable) ? kAudioSessionCategory_PlayAndRecord | |||||
| : kAudioSessionCategory_MediaPlayback; | |||||
| if (numInputChannels > 0 && audioInputIsAvailable) | |||||
| { | |||||
| audioCategory = kAudioSessionCategory_PlayAndRecord; | |||||
| AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (audioCategory), &audioCategory); | |||||
| if (audioCategory == kAudioSessionCategory_PlayAndRecord; | |||||
| { | |||||
| // (note: mustn't set this until after the audio category property has been set) | |||||
| UInt32 allowBluetoothInput = 1; | UInt32 allowBluetoothInput = 1; | ||||
| AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryEnableBluetoothInput, | AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryEnableBluetoothInput, | ||||
| sizeof (allowBluetoothInput), &allowBluetoothInput); | sizeof (allowBluetoothInput), &allowBluetoothInput); | ||||
| } | } | ||||
| AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (audioCategory), &audioCategory); | |||||
| AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange, routingChangedStatic, this); | AudioSessionAddPropertyListener (kAudioSessionProperty_AudioRouteChange, routingChangedStatic, this); | ||||
| fixAudioRouteIfSetToReceiver(); | fixAudioRouteIfSetToReceiver(); | ||||