Я разрабатываю приложение, которое должно иметь следующие свойства относительно звука:
- может одновременно записывать и воспроизводить звук
- может смешивать аудиовыход с другимиприложение, например, iPod
- аудио выход на динамик, когда наушники не подключены
- аудио выход на наушники, когда он подключен
Я использовал следующий код.
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *audioSessionError;
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&audioSessionError];
UInt32 mix = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(mix), &mix);
UInt32 route = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(route), &route);
[audioSession setActive:YES error:&audioSessionError];
Тем не менее, я могу достичь 1-3, но потерпел неудачу на 4. Когда наушники подключены, звук все еще идет через динамик.Затем я попытался установить kAudioSessionProperty_OverrideCategoryDefaultToSpeaker
вместо kAudioSessionProperty_OverrideAudioRoute
, но это привело к остановке iPod вместо микширования обоих звуков.Может ли кто-нибудь помочь, указав, что не так с приведенным выше кодом?
Спасибо за любую помощь.