У меня есть приложение для захвата видео, и я хочу иметь возможность играть в фоновую музыку во время записи аудио + видео.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
?
Простыми словами запись приложения не работает во время музыки ... и вы хотите, чтобы оба работали вместе правильно? –
Да, но нужно запустить в режиме Ambient – Cbas