首页 > 解决方案 > 如何从 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)
    }

我得到空音频数据。

标签: audiopcmavaudioenginedownsamplingsample-rate

解决方案


您可以使用音频转换器服务将 48 K Hz 转换为 44.1 K Hz 采样频率。由于iOS/iphone平台不支持所有的采样频率。

https://developer.apple.com/documentation/audiotoolbox/audio_converter_services


推荐阅读