Skip to main content
 首页 » 操作系统

swift之IOS 8 AVAudioRecorder 更改示例格式

2024年01月01日50kuangbin

我正在构建一个应用程序,其中一个功能是录制语音消息我想要示例格式 16 位 PCM,但我似乎无法正确处理。 我尝试了很多不同的设置,但每次我在 audacity 中检查文件时,它都会显示 32 位 float 。

这是我当前的录音机设置

var recorderSettings = [NSObject: AnyObject]() 
recorderSettings[AVFormatIDKey] = kAudioFormatALaw 
recorderSettings[AVSampleRateKey] = 16000 
recorderSettings[AVNumberOfChannelsKey] = 1 
recorderSettings[AVLinearPCMBitDepthKey] = 16 
recorderSettings[AVLinearPCMIsFloatKey] = false 

请您参考如下方法:

所以我发现了我需要 kAudioFormatLinearPCM 而不是 kAudioFormatALaw 的问题

我之前尝试过,但后来我只用 audacity 检查了格式,它报告了 32 位 float 。但在阅读 Dom Bryan 的回答后,我用文件命令再次检查了它,它报告了正确的格式。

正确的配置应该是

var recorderSettings = [NSObject: AnyObject]() 
recorderSettings[AVFormatIDKey] = kAudioFormatLinearPCM 
recorderSettings[AVSampleRateKey] = 16000 
recorderSettings[AVNumberOfChannelsKey] = 1 
recorderSettings[AVLinearPCMBitDepthKey] = 16 
recorderSettings[AVLinearPCMIsFloatKey] = false