Как получить звук с частотой дискретизации 44100 с iPhone 11 или iPhone 11 Pro Max

Я использую следующий код, чтобы получить аудиосэмпл с частотой дискретизации 44100 от iPhone 11. 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)
    }

Я получаю нулевые аудиоданные.


person Raj Aggrawal    schedule 19.11.2019    source источник


Ответы (1)


Вы можете использовать Audio Converter Services для преобразования частоты дискретизации 48 кГц в 44,1 кГц. Поскольку все частоты дискретизации не поддерживаются платформой iOS / iphone.

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

person mail2subhajit    schedule 19.11.2019