Слишком низкая громкость на iPhone при воспроизведении записанного файла - PullRequest
4 голосов
/ 04 июля 2011

Я занимаюсь разработкой приложения для iOS, в котором я должен иметь возможность записать звук, сохранить его в файловой системе и затем воспроизвести с диска.Когда я пытаюсь воспроизвести файл с диска, я почти ничего не слышу.Громкость слишком низкая.Но я уверен, что установил бы громкость устройства на максимум.Я использую AVAudioRecorder и AVAudioPlayer` для записи и воспроизведения.

Может кто-нибудь указать, в чем проблема?

Ответы [ 3 ]

7 голосов
/ 05 июня 2017

Для большинства решений здесь, вероятно, будет использование опции .defaultToSpeaker с категорией AVAudioSessionCategoryPlayAndRecord:

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: [.defaultToSpeaker])

Но для меня проблема заключалась в том, что другой компонент в моем приложении былустановка режима AVAudioSessionModeMeasurement в аудио сеансе, который по какой-либо причине уменьшает выходную громкость.

1 голос
/ 05 сентября 2017

Установить категорию AVAudioSession, используя этот метод

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
0 голосов
/ 17 августа 2018

попробуйте этот код.Я думаю, что setMode решает мою проблему.

NSError * outError = nil;
AVAudioSession * session = [AVAudioSession sharedInstance];
[session setActive:NO error:nil];
[ session overrideOutputAudioPort: AVAudioSessionPortOverrideSpeaker error:&outError];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
[session setMode:AVAudioSessionModeSpokenAudio error:nil];
[session setActive:YES error:nil];
if(outError){
    NSLog(@"speak error %@", outError);
}
...