audio - 如何从 iPhone 11 或 iPhone 11 Pro Max 获取采样率为 44100 的音频
问题描述
我正在使用以下代码从 iPhone 11 获取 44100 采样率的音频样本。iPhone 11 默认具有 48000 采样率。
let audioEngine = AVAudioEngine()
let inputNode = audioEngine.inputNode
let main = audioEngine.mainMixerNode
let inputFormat = inputNode.inputFormat(forBus: 0)
let outputFormat = AVAudioFormat(commonFormat: AVAudioCommonFormat.pcmFormatInt16, sampleRate: 44100, channels: 1, interleaved: true)
audioEngine.attach(downMixer)
audioEngine.connect(inputNode, to: downMixer, format: inputFormat)
audioEngine.connect(downMixer, to: main, format: outputFormat)
downMixer.installTap(onBus: 0, bufferSize: 2048, format: outputFormat) { (buffer, time) -> Void in
print(buffer)
}
我得到空音频数据。
解决方案
您可以使用音频转换器服务将 48 K Hz 转换为 44.1 K Hz 采样频率。由于iOS/iphone平台不支持所有的采样频率。
https://developer.apple.com/documentation/audiotoolbox/audio_converter_services
推荐阅读
- opengl - 离屏渲染和 alpha 与背景颜色缓冲区的混合
- javascript - 调用调度后组件不更新
- c++ - 可写的邮编范围是不可能的?
- django - Django forms.ValidationError 未显示在模板中并且提交不起作用
- c# - 允许为 Datagridview C# 输入负整数值
- php - 如何在php中比较mysql查询中的时间?
- android - 原始错误:未知错误:无法发现打开的页面
- javascript - 为什么 Date.now() 在 node.js 中返回错误的值
- javascript - 每次点击列表项时,在事件源 URL 中发送参数
- mips - C 到 MIPS - 函数和数组