我正在构建一个应用程序,其中一个功能是录制语音消息我想要示例格式 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
关于swift - IOS 8 AVAudioRecorder 更改示例格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835544/