MPMoviePlayerController включает аппаратное отключение звука в AVAudioPlayer

Я переключил свой телефон в отключенное состояние, переключив аппаратную кнопку вибрации / звука. Во всем приложении воспроизводится некоторая фоновая музыка, если устройство не находится в отключенном состоянии. Так что в этом случае моя музыка играет, но приглушена. Теперь в какой-то момент я хочу представить видео (которое без звука, но это не должно иметь значения), однако видео в MPMoviePlayerController включает музыку из AVAudioPlayer, даже если устройство находится в состоянии "приглушено". AVAudioPlayer продолжает играть громко, даже когда я выхожу из MPMoviePlayerController.

Некоторые примеры кода, но я сомневаюсь, что это поможет:

// movie without sound
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategorySoloAmbient error:nil];
NSURL *movieURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myVideo" ofType:@"mp4"]];
_moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[_scrollView addSubview:_moviePlayerController.view];
[_moviePlayerController prepareToPlay];
[_moviePlayerController play];

// music
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[_audioPlayer prepareToPlay];
[_audioPlayer play];

1 ответ

Решение

Чтобы это исправить, мне пришлось переписать код, но вместо того, чтобы использовать MPMoviePlayerController Я использовал AVPlayer, Теперь все работает как шарм.

Другие вопросы по тегам