плохое качество звука при попытке записи аудио в iPhone - PullRequest
1 голос
/ 11 июля 2011

Я использую класс AVAudioRecorder для записи голосового ввода пользователей в моем приложении. Я могу записывать и воспроизводить звук. Но качество продукции очень низкое. Я получаю много шума в фоновом режиме при попытке воспроизведения записанного звука. Что я должен сделать, чтобы получить высококачественный аудиовыход . Я использую следующие настройки (код) для записи звука.

NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatAppleLossless] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; // previously i'v used 8400
    [recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];

и приведенный ниже код для воспроизведения звука

[[AVAudioSession sharedInstance] setCategory:
 AVAudioSessionCategoryPlayback error:NULL];

NSURL *fileTobePlayed = [NSURL fileURLWithPath:[[[[UIApplication sharedApplication]delegate] applicationDocumentsDirectory] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",currentPage]]];
//AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:recordedTmpFile error:&error];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileTobePlayed error:&error];

NSLog(@"The file being played is %@",fileTobePlayed);
[audioPlayer prepareToPlay];
[audioPlayer play];
audioPlayer.volume = 4.0;

спасибо ..

1 Ответ

2 голосов
/ 24 октября 2011

Используя этот код, чтобы добавить его.

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;     

            AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,          
                                     sizeof (audioRouteOverride),&audioRouteOverride);
...