IOS13 AVAudioRecorder不尊重设置AVLinearPCMBitDepthKey(16)

问题描述 投票:0回答:1

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

我将非常感谢您的帮助。

ios13 avaudiorecorder
1个回答
0
投票

您需要将AVLinearPCMIsFloatKey设置为NO。

© www.soinside.com 2019 - 2024. All rights reserved.