我正在构建一个应用程序,其中一个功能是录制语音消息我想要样本格式16位PCM,但我似乎无法正确。 我已经尝试了很多不同的设置,但每次我用audacity检查文件时都会说32位浮点数。
这是我目前的记录器设置
var recorderSettings = [NSObject: AnyObject]()
recorderSettings[AVFormatIDKey] = kAudioFormatALaw
recorderSettings[AVSampleRateKey] = 16000
recorderSettings[AVNumberOfChannelsKey] = 1
recorderSettings[AVLinearPCMBitDepthKey] = 16
recorderSettings[AVLinearPCMIsFloatKey] = false
答案 0 :(得分:2)
所以我发现问题我需要kAudioFormatLinearPCM而不是kAudioFormatALaw
我之前尝试过,但之后我只检查了大胆的格式,并报告了32位浮点数。但在阅读了Dom Bryan之后,我再次使用file命令检查了它,并报告了正确的格式。
所以正确的配置将是
var recorderSettings = [NSObject: AnyObject]()
recorderSettings[AVFormatIDKey] = kAudioFormatLinearPCM
recorderSettings[AVSampleRateKey] = 16000
recorderSettings[AVNumberOfChannelsKey] = 1
recorderSettings[AVLinearPCMBitDepthKey] = 16
recorderSettings[AVLinearPCMIsFloatKey] = false
答案 1 :(得分:1)
尝试查看大胆设置。它偏好32位灵活性,然后建议以16位出口。您的代码看起来不错,因此请尝试使用大胆或不同的程序。
以下是大胆的偏好链接:http://audacity.sourceforge.net/onlinehelp-1.2/prefs.htm