Как заставить MPMoviePlayerController игнорировать выключатель звука - PullRequest
21 голосов
/ 08 декабря 2010

Я хочу воспроизвести видео с использованием MPMoviePlayerController, но хочу, чтобы он игнорировал переключатель отключения звука, аналогично поведению видеоплеера Youtube.

Есть идеи?

Ответы [ 5 ]

48 голосов
/ 09 февраля 2011

Используйте категорию AVAudioSession AVAudioSessionCategoryPlayback, и ваше приложение будет игнорировать переключатель отключения звука, как приложение Youtube.

Например (вдохновленный Кеном Плетцером в комментариях):

#import <AVFoundation/AVFoundation.h>

// note: you also need to add AVfoundation.framework to your project's 
// list of linked frameworks
NSError *error = nil;
BOOL success = [[AVAudioSession sharedInstance] 
                setCategory:AVAudioSessionCategoryPlayback 
                error:&error];
if (!success) {
    // Handle error here, as appropriate
}
2 голосов
/ 02 мая 2012
_player.useApplicationAudioSession = NO;
1 голос
/ 27 июля 2017

Для любого в будущем, я знаю, что на этот вопрос уже был дан ответ, но у меня была проблема с воспроизведением видео в моем приложении, из-за которого приложения, такие как 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.
}
1 голос
/ 26 июля 2016

в Swift: Сделайте это один раз перед воспроизведением звука / видео (например, в начале вашего приложения)

do{
  try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
  //Didn't work
}
1 голос
/ 14 ноября 2012

После импорта AVFoundation просто поместите это в ваш делегат:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

...