IOS 8 AVAudioRecorder 更改示例格式
Posted
技术标签:
【中文标题】IOS 8 AVAudioRecorder 更改示例格式【英文标题】:IOS 8 AVAudioRecorder change sample fomat 【发布时间】:2015-03-03 15:25:59 【问题描述】:我正在构建一个应用程序,其中一个功能是录制语音消息我想要样本格式 16 位 PCM,但我似乎无法正确处理。 我尝试了很多不同的设置,但每次我大胆检查文件时,它都会显示 32 位浮点数。
这是我当前的记录器设置
var recorderSettings = [NSObject: AnyObject]()
recorderSettings[AVFormatIDKey] = kAudioFormatALaw
recorderSettings[AVSampleRateKey] = 16000
recorderSettings[AVNumberOfChannelsKey] = 1
recorderSettings[AVLinearPCMBitDepthKey] = 16
recorderSettings[AVLinearPCMIsFloatKey] = false
【问题讨论】:
【参考方案1】:所以我发现我需要 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
【讨论】:
很高兴听到你收到了我很抱歉,我已经完成了 kAudioFormat 的检查 我也在尝试使用这些设置,但它在方法 .prepareToRecord() 处使我的应用程序崩溃,有什么想法吗?【参考方案2】:尝试查看大胆的设置。它偏爱 32 位以获得灵活性,然后建议以 16 位导出。您的代码看起来没有错,因此请尝试使用 Audacity 或其他程序。这是 Audacity 首选项的链接:http://audacity.sourceforge.net/onlinehelp-1.2/prefs.htm
【讨论】:
好的,但我将文件上传到采用该格式的服务。当我从应用程序上传它时出现错误,但在大胆更改为 16 位 PCM 后,我可以上传该文件。但也许大胆将其他一些设置更改为 嗯,我猜它是 AVRecorder,尝试以下方式:recorderSettings[AVEncoderAVBitRateKey] = 16 或者甚至尝试设置 recorderSettings[AVEncoderAudioQualityKey] = (AVAudioQualityLow) 谢谢,但我已经试过了,明天再试一次,以防万一我有其他设置搞砸了以上是关于IOS 8 AVAudioRecorder 更改示例格式的主要内容,如果未能解决你的问题,请参考以下文章
为啥 deleteRecording 崩溃(AVAudioRecorder,iOS)?
iOS音频与视频的开发- 使用AVAudioRecorder进行录制音频
AVAudioRecorder & AVAudioPlayer - 内置扬声器的声音输出,如何更改?