Thanks to 'sbooth' on StackOverflow for the answer, I was missing .baseAddress on the mData: argument:
var floats: [Float] = ... // this comes from somewhere else
try floats.withUnsafeMutableBufferPointer { bytes in
let audioBuffer = AudioBuffer(mNumberChannels: 1, mDataByteSize: UInt32(bytes.count * MemoryLayout<Float>.size), mData: bytes.baseAddress)
var bufferList = AudioBufferList(mNumberBuffers: 1, mBuffers: audioBuffer)
let outputAudioBuffer = AVAudioPCMBuffer(pcmFormat: buffer.format, bufferListNoCopy: &bufferList)!
try self.renderedAudioFile?.write(from: outputAudioBuffer)
}
Topic:
Media Technologies
SubTopic:
Audio
Tags: