Я видел некоторые приложения, такие как WhatsApp имеет функцию воспроизведения аудиоклипов только через динамик (динамик телефонных разговоров), когда пользователь поднимает устройство рядом с ухом. В противном случае его воспроизведение осуществляется через обычный встроенный динамик.Как воспроизводить звук через встроенный динамик динамика
Я использую MPMoviePlayer для воспроизведения аудиоклипов.
У меня было много похожих вопросов и ответов в Интернете, и все ответы говорят, чтобы установить категорию AudioSession в PlayAndRecord. Это оно.
Я сделал то же самое, но не смог получить точный результат, который я хочу получить.
// Audio Player
self.audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[audioSession setActive:YES error:nil];
self.moviePlayer = [[MPMoviePlayerController alloc] init];
self.moviePlayer.view.hidden = YES;
// AVAudioSessionPortDescription *routePort = self.audioSession.currentRoute.outputs.firstObject;
// NSString *portType = routePort.portType;
//
// if ([portType isEqualToString:@"Receiver"]) {
// [self.audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];
// } else {
// [self.audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:nil];
// }
Может кто-нибудь пожалуйста, покажите мне, где и как я могу изменить источник воспроизведения звука через динамик наушника только тогда, когда пользователь поднимает устройство?
Вот один я последовал. Но не работает для меня. См. Отредактированный вопрос, я опубликовал полный исходный код – sajaz
Я мог бы решить его с помощью AVAudioSession и ProximityMonitering. Я отправил ответ – sajaz