У меня есть приложение, в котором пользователь может записывать звук, а также воспроизводить звук либо в динамике, либо в наушнике. Для маршрутизации аудио я устанавливаю kAudioSessionProperty_OverrideAudioRoute следующим образом:
if(loudSpeakerOn) {
audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
}
else {
audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
}
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);
Я также должен убедиться, что когда пользователь включает/выключает переключатель отключения звука/вибрации, звук должен отключаться/включаться. Для этого я установил следующее свойство
SInt32 ambient = kAudioSessionCategory_AmbientSound;
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(ambient), &ambient)) {
NSLog(@"*** Error *** could not set Session property to ambient.");
}
Теперь проблема в том, что когда я устанавливаю свойство Ambient, аудиомаршрут и аудиозапись перестают работать.
Как я могу заставить все это работать вместе?
Спасибо!