Как заставить MPMoviePlayerController игнорировать переключатель отключения звука
Я хочу воспроизвести видео с помощью MPMoviePlayerController, но я хочу, чтобы он игнорировал переключатель отключения звука, аналогичный поведению видеопроигрывателя Youtube.
Любые идеи?
Ответ 1
Используйте категорию AVAudioSessionAVAudioSessionCategoryPlayback, и ваше приложение будет игнорировать переключатель отключения звука, как приложение Youtube.
Например (вдохновленный Кен Плетцером в комментариях):
#import <AVFoundation/AVFoundation.h>
// note: you also need to add AVfoundation.framework to your project
// list of linked frameworks
NSError *error = nil;
BOOL success = [[AVAudioSession sharedInstance]
setCategory:AVAudioSessionCategoryPlayback
error:&error];
if (!success) {
// Handle error here, as appropriate
}
Ответ 2
_player.useApplicationAudioSession = NO;
Ответ 3
После импорта AVFoundation просто поместите это в свой делегат:
в Swift: сделайте это один раз, прежде чем воспроизводить звук/видео (например, в начале вашего приложения)
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
//Didn't work
}
Ответ 5
Для всех в будущем я знаю, что на это уже был дан ответ, но у меня возникла проблема с воспроизведением видео в моем приложении, которое вызвало такие приложения, как spotify, youtube и т.д., чтобы перестать воспроизводить звук, поэтому я в конечном итоге использую это
NSError *silentSwitcherror = nil;
BOOL silentSwitchSuccess = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&silentSwitcherror];
if (silentSwitchSuccess)
{
//put whatever video code you are trying to play
}
else
{
//put how to handle failed instances.
}