AVAudioRecorder 的有效“设置”键/值是啥?

Posted

技术标签:

【中文标题】AVAudioRecorder 的有效“设置”键/值是啥?【英文标题】:What are the valid 'settings' key/values for AVAudioRecorder?AVAudioRecorder 的有效“设置”键/值是什么? 【发布时间】:2018-01-04 08:48:03 【问题描述】:

我正在为 macOS 开发一个使用 AVAudioRecorder 的 Swift 应用程序。 initializer method of this class may consume a 'settings' dictionary。相关的 AV 文档都对这些设置键/值的定义位置进行了无 URL 的纯文本引用,例如:

有关录音机可用设置的信息,请参阅 AV Foundation 音频设置常量。

我为此文档搜索了很多,但找不到它。实际上,我已经向 Apple 提交了一份反馈报告,要求他们更新他们的 API 文档,其中包含指向该文档的链接,因为它在许多地方都提到过,但只是按名称。

我已经尝试过广泛使用谷歌搜索。我在他们的开发者网站上使用了 Apple 自己的搜索功能,并在 Xcode 本身中搜索了 API 文档。这项工作尚未找到标题为 AV Foundation Audio Settings Constants 的文档,但我可以找到许多以该确切名称引用它的文档。

有没有人知道这个神秘的 API 文档实际存在于哪里?

【问题讨论】:

也许这就是你需要的? developer.apple.com/documentation/avfoundation/avaudioplayer/… @the4kman - 感谢您的尝试,我以前看过那个。它没有其他文档引用的标题“AV Foundation Audio Settings Constants”,我猜不是这样。 我认为标题改变了,他们没有在其他地方更新文档。 @the4kman - 可能是这样,我期待的设置选项比讨论的要多。我已经尝试使用其中的值设置我的设置字典,但我无法判断它会改变任何内容,但如果我将设置对象设为空,我确实会遇到崩溃。 【参考方案1】:

我没有找到任何真正的权威文档,这里只是我迄今为止遇到的参数的运行列表:

AVFormatIDKey :kAudioFormatAppleLossless,kAudioFormatMPEG4AAC

AVNumberOfChannelsKey :2

AVSampleRateKey :44100.0

AVEncoderBitRateKey:192000,320000

AVEncoderAudioQualityKey :AVAudioQuality.min.rawValue,AVAudioQuality.max.rawValue


这是一个使用其中一些值创建设置字典的 Swift 示例:

let settings:[String : Any] = [ AVFormatIDKey : kAudioFormatAppleLossless,
    AVEncoderAudioQualityKey : AVAudioQuality.max.rawValue,
    AVEncoderBitRateKey: 320000,
    AVNumberOfChannelsKey : 2,
    AVSampleRateKey : 44100.0 ] as [String : Any]

我希望随着我的努力不断更新它,提供更多选项。其他人也欢迎更新,请按照我这里的格式。

【讨论】:

以上是关于AVAudioRecorder 的有效“设置”键/值是啥?的主要内容,如果未能解决你的问题,请参考以下文章

录制语音的正确 AVAudioRecorder 设置?

AVAssetWriter 记录设置不像 AVAudioRecorder 那样工作

AVAudioRecorder 设置录音开始时间

AVAudioRecorder - 正确的 MPEG4 AAC 录制设置

Mac-AVAudioRecorder 选择麦克风

AVAudioRecorder 不保存录音