5

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

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

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

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

Я попытался это:

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

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

После этого поста: AVCaptureSession and background audio 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?

+0

Простыми словами запись приложения не работает во время музыки ... и вы хотите, чтобы оба работали вместе правильно? –

+0

Да, но нужно запустить в режиме Ambient – Cbas

ответ

0

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

AVAudioSessionCategoryMultiRoute

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

Смежные вопросы