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.

questionAnswers(2)

yourAnswerToTheQuestion