我正在尝试将音频缓冲区转换为不同的格式,并且我使用的是AVAudioConverter。当您具有相同的采样率并且不需要使用AVAudioConverterInputBlock时,AVAudioConverter可以完成这项工作。self.engine.connect(mixer, to: self.engine.mainMixerNode, format: formatIn)
let audioConverter = AVAudioConverter
下面的代码接受AVAudioPCMBuffer,使用AVAudioConverter将其压缩为AVAudioCompressedBuffer (iLBC)并获取字节,然后将字节转换回AVAudioCompressedBufferAVAudioPCMBuffer) -> AVAudioCompressedBuffer { let inputFormat = in
audioBuffer.frameLength = AVAudioFrameCount(frameLength) /* Implemented an AVAudioConverterframeLength = AVAudioFrameCount(frameLength)
let converter = AVAudioConverter(from: format,
guard let bufferMapper = AVAudioConverter(from: formatIn, to: formatOut) else { // More here: http://stackoverflow.com/questions/39714244/avaudioconverter-i