swift - IOS 8 AVAudioRecorder 更改示例格式

标签 swift ios8 audio-recording

我正在构建一个应用程序,其中一个功能是录制语音消息我想要示例格式 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/

相关文章:

ios - NSTextView 在使用不同的 NSParagraphStyles 更改属性时更新速度太慢

ios - HomeKit 抛出错误 77 和 78

c++ - 用 C++ 捕获音频

.net - HTML5音频记录器流并上传到MVC服务器-为什么会有噪音?

codenameone - 是否可以在 iOS 中使用 Codename One 录制音频?

ios - 如何使用 Xcode 在 Swift 中按 UI 元素类型进行应用程序范围/更快的更新......?

ios - 如果在其他类中实现,自定义点击识别器方法将不起作用

SwiftUI Stepper 将 "."放入整数

swift - 使用 NSCoding 保存数组

ios - 在 iOS 8 中使用 NEVPNManager,如何以编程方式创建与自定义 VPN 类型的 VPN 连接? (例如 Cisco any connect)