Como silenciar / ativar o áudio ao reproduzir vídeo usando o MPMoviePlayerController?
Eu criei meus próprios controles personalizados para uso com oMPMoviePlayerController
. Até agora tudo funciona, exceto o controle de botão mudo.
Eu configurei oAVAudioSession
usando o seguinte código antes de criar minha instância doMPMoviePlayerController
.
NSError *modeError = nil;
[self.audioSession setMode:AVAudioSessionModeMoviePlayback error:&modeError];
if (modeError != nil) {
NSLog(@"Error setting mode for AVAudioSession: %@", modeError);
}
NSError *categoryError = nil;
[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&categoryError];
if (categoryError != nil) {
NSLog(@"Error setting category for AVAudioSession: %@", categoryError);
}
Em seguida, no meu método de retorno de chamada do botão mudo, tenho o seguinte código:
NSError *activeError = nil;
[self.audioSession setActive:NO error:&activeError];
if (activeError != nil) {
NSLog(@"Error setting inactive state for AVAudioSession: %@", activeError);
}
Ao clicar no botão Mute, recebo o seguinte erro inútil:
Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
Estou ligando para oAVFoundation
estrutura.
Isso está realmente começando a me incomodar, pois não posso, durante minha vida, descobrir uma maneira de reduzir ou silenciar o áudio de reprodução do meu aplicativo.
Eu não quero mudar o volume global do sistema apenas o volume do nível do aplicativo, conforme definido peloAVAudioSession
AVAudioSessionCategoryPlayback
categoria.
Parece que você pode definir o volume doAVAudioPlayer
mas não oMPMoviePlayerController
. Eu vi outros posts aqui no SO que dizem apenas criar uma instância deAVAudioPlayer
e definir o volume, mas isso só faz com que meu aplicativo travar e espero que tenha algo a ver com o fato de eu não estar usando oinitWithContentsOfURL:error:
ouinitWithData:error:
e, em vez disso, usando `init '.
Qualquer ajuda seria apreciada.