【问题标题】:IOS 8 AVAudioRecorder change sample fomatIOS 8 AVAudioRecorder 更改示例格式
【发布时间】: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

【问题讨论】:

    标签: swift ios8 audio-recording


    【解决方案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)
    • 谢谢,但我已经试过了,明天再试一次,以防万一我有其他设置搞砸了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多