Я разрабатываю приложение, которое должно обладать следующими свойствами в отношении аудио:iPhone AudioSession свойства
- может записывать и воспроизводить звук в то же время
- может смешать аудиовыход с другим приложением, например, 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 вместо смешивания обоих аудио. Может ли кто-нибудь помочь, указав, что не так с вышеуказанным кодом?
Спасибо за любую помощь.
Вы пробовали слушать уведомления об изменениях маршрута аудио и установка kAudioSessionOverrideAudioRoute_Speaker только если наушники не подключен, и снятия с охраны, когда он подключен ? – lucius
Какой импорт требуется для выполнения этой работы? – 2011-01-15 12:11:11