1

我正在使用 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

3 回答 3

1

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

于 2011-06-08T12:26:06.657 回答
1

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

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
[session setActive:YES error:nil];
于 2012-10-02T21:43:20.977 回答
0

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

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

不要忘记包括<AudioToolbox/AudioServices.h>. 再想一想,将音频类别切换为纯播放也应该可以解决问题,而您说它没有……</p>

于 2011-06-08T13:18:56.267 回答