我正在使用AVAudioRecorder录制声音,并进行如下设置:
- (NSMutableDictionary *)recordSetting {
NSMutableDictionary *recSetting = [[NSMutableDictionary alloc] init];
// General Audio Format Settings
recSetting[AVFormatIDKey] = @(kAudioFormatLinearPCM);
recSetting[AVSampleRateKey] = @16000;
recSetting[AVNumberOfChannelsKey] = @1;
// Linear PCM Format Settings
recSetting[AVLinearPCMBitDepthKey] = @16;
recSetting[AVLinearPCMIsBigEndianKey] = @YES;
recSetting[AVLinearPCMIsFloatKey] = @YES;
// Encoder Settings
recSetting[AVEncoderAudioQualityKey] = @(AVAudioQualityMedium);
recSetting[AVEncoderBitRateKey] = @128000;
return recSetting;
}
[在iOS12中工作正常,我可以录制16位的wav文件。将我的iOS12更新到iOS13之后,即使我什么都没做,我也只能录制32bit文件,仍然将AVLinearPCMBitDepthKey设置为16。因此似乎AVLinearPCMBitDepthKey不受影响。
任何专家都可以支持任何解决方案或解决方法吗?录制后我仍然需要16位wav文件。
我将非常感谢您的帮助。
您需要将AVLinearPCMIsFloatKey设置为NO。