iPhone SDK: установка звукового маршрута, а также отключение звука при включенном переключателе отключения звука - PullRequest
1 голос
/ 01 апреля 2010

У меня есть приложение, в котором пользователь может записывать звук, а также воспроизводить звук в динамике или наушнике. Для маршрутизации аудио я установил 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, аудио-маршрут и аудиозапись перестали работать.

Как мне заставить все это работать вместе?

Спасибо!

1 Ответ

0 голосов
/ 12 мая 2010

Вы работали? Я считаю, что установка категории аудиосеансов ambient будет запрещать запись. Если вам нужно одновременно записывать и воспроизводить аудио, используйте вместо этого kAudioSessionCategory_PlayAndRecord, в противном случае переключайтесь между ними, когда они вам нужны. Кроме того, установка категории может привести к повторной инициализации маршрутизации, так что вы, вероятно, захотите установить ее снова после установки категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...