没有耳机听不到AVAudioRecorder的声音

时间:2011-06-08 10:53:07

标签: iphone iphone-sdk-3.0 avaudiorecorder avaudiosession

我正在使用AVAudioRecorder在iPhone上录制语音,这些是我的录音机设置:

 NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc] init];
    [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
    [recordSetting setValue:[NSNumber numberWithFloat:16000.0] forKey:AVSampleRateKey]; 
    [recordSetting setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];

问题是没有耳机我听不到录制的声音。 我希望能够听到没有耳机的声音。 我该如何更改我的代码?

4 个答案:

答案 0 :(得分:1)

您必须在播放声音之前将AVAudiosession类别设置为AVAudioSessionCategoryPlayback

答案 1 :(得分:1)

另一件需要考虑的事情是,如果您没有设置AVAudioSession进行播放,那么手机侧面的静音振铃开关将使您的音频无法通过扬声器播放。为了让您能够使用静音手机播放声音,请确保在触发AVAudioPlayer播放文件之前使用此类内容:

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
[session setActive:YES error:nil];

答案 2 :(得分:0)

参考以下链接

Problem using AVAudioRecorder

答案 3 :(得分:0)

也许将音频输出强制路由到扬声器会有帮助吗?

- (void) forceRouteAudioToSpeaker
{
    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
        sizeof(audioRouteOverride), &audioRouteOverride);
}

不要忘记包含<AudioToolbox/AudioServices.h>。第二个想法,将音频类别切换到普通播放也应该可以解决问题,你说它没有...