我正在使用AVAudioRecorder录制音频并保存到wav文件(使用SDK 3.0)设置字典包含以下值
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init]; [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey]; [recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];
即使将通道数指定为2,播放也是单声道(即仅在1个耳机插孔而不是两个通道中播放).
还有其他人遇到过这个问题吗?recordSetting字典值有什么问题吗?
谢谢
任何人都可以帮我这个...如果我指定通道数为2,为什么回放只在一个插孔?(我正在使用耳机进行测试 - 我的iPhone附带的耳机)
只需注释掉以下行
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
默认设置应该有效.
这样做的原因是您现在将录制单声道文件,当播放时,音频将在每个扬声器中播放,这与单声道文件的正常行为一样.如果你包含这一行,你最终会录制一个立体声文件,其中一个声道完全静音,这样当你播放它时,你只能在一只耳朵中获得音频.