Как отключить / включить звук при воспроизведении видео с помощью MPMoviePlayerController?
Я создал свои собственные элементы управления для использования сMPMoviePlayerController
, Пока что все работает, кроме кнопки отключения звука.
Я настроилAVAudioSession
используя следующий код, прежде чем я создаю свой экземплярMPMoviePlayerController
.
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);
}
Тогда в моем методе обратного вызова кнопки отключения звука у меня есть следующий код:
NSError *activeError = nil;
[self.audioSession setActive:NO error:&activeError];
if (activeError != nil) {
NSLog(@"Error setting inactive state for AVAudioSession: %@", activeError);
}
При нажатии на кнопку Mute я получаю следующую ненужную ошибку:
Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
Я ссылаюсь наAVFoundation
фреймворк.
Это действительно начинает меня беспокоить, так как я не могу на всю жизнь найти способ уменьшить или отключить звук воспроизведения моего приложения.
Я не хочу изменять общий объем системы, а только уровень приложения, как определеноAVAudioSession
AVAudioSessionCategoryPlayback
категория.
Кажется, вы можете установить громкостьAVAudioPlayer
но неMPMoviePlayerController
, Я видел другие посты здесь на SO, которые говорят просто создать экземплярAVAudioPlayer
и установить громкость, но это просто вызывает сбой моего приложения, и я ожидаю, что это как-то связано с тем, что я не используюinitWithContentsOfURL:error:
или жеinitWithData:error:
и вместо этого используя `init '.
Любая помощь будет оценена.