AVAudioSession setCategory не работает

У меня есть приложение для захвата видео, и я хочу иметь возможность воспроизводить фоновую музыку во время записи аудио и видео.

Я могу добиться этого, если установлю категорию AVAudioSession на PlayAndRecord в didFinishLaunchingWithOptions. Однако это вызывает сбой в звуке всякий раз, когда вид с камерой выходит или выходит из переднего плана, и от этого, по-видимому, невозможно избавиться: https://forums.developer.apple.com/message/74778#74778

Я могу жить с глюком, если он просто происходит, когда я начинаю/останавливаю запись видео, но это означает, что мне нужно изменить категорию AVAudioSession с Ambient на PlayAndRecord при нажатии кнопки, и это тоже кажется невозможным.

Как изменить категорию AVAudioSession?

Я пробовал это:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord
                                 withOptions:AVAudioSessionCategoryOptionMixWithOthers
                                       error:nil];

Но фоновая музыка останавливается, когда начинается запись.

После этого сообщения: AVCaptureSession и фоновый звук iOS 7

Я попытался деактивировать сеанс, а затем установить категорию:

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
[session setCategory:AVAudioSessionCategoryPlayAndRecord
         withOptions:AVAudioSessionCategoryOptionMixWithOthers | AVAudioSessionCategoryOptionDefaultToSpeaker
               error:nil];
[session setActive:YES error:&error];

Я также попытался прослушать AVAudioSessionRouteChangeNotification и установить категорию в этом обработчике после деактивации сеанса. Но фоновая музыка всегда отключается, когда приложение начинает запись.

Почему я не могу изменить категорию AVAudioSession?


person Cbas    schedule 25.02.2016    source источник
comment
Проще говоря, запись приложения не работает во время музыки ... и вы хотите, чтобы оба работали вместе, верно ??   -  person EI Captain v2.0    schedule 03.03.2016
comment
да, но он должен запускаться в режиме Ambient   -  person Cbas    schedule 03.03.2016


Ответы (1)


Пожалуйста, попробуйте эту категорию

AVAudioSessionCategoryMultiRoute

или проверьте обе категории AVAudioSessionCategoryPlayAndRecord | AVAudioSessionCategoryRecord

person Saood    schedule 07.03.2016