Я создал свои собственные элементы управления для использования с 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);
}
Затем в моем методе обратного вызова кнопки mute у меня есть следующий код:
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 '.
Любая помощь будет оценена по достоинству.