我可以通过以下代码将缓冲区数据附加到音频文件的END来将音频记录到音频文件中:
// AVAudioFile uses the Core Audio Format (CAF) to write to disk.
// So we're using the caf file extension.
file = try AVAudioFile(forWriting: FileManagerHelper.recordingLocalURL(), settings: format.settings)
tapNode.installTap(onBus: 0, bufferSize: bufferSize, format: format, block: {
(buffer, _) in
do {
buffer.frameLength = 1024 // Tap is now called every 40ms. By default, tap is called every 0.375s
try self.file?.write(from: buffer)
self.delegate?.recorderDidRecieveAudioBuffer(self, buffer: buffer)
semaphore.signal()
} catch {
log("Error writing mic data to file.", msgType: .error)
}
})
但是,是否有将缓冲区数据写入文件的特定位置,即缓冲区数据中的时间或索引?
感谢
根据苹果文档:
var framePosition:AVAudioFramePosition:文件中将进行下一次读取或写入操作的位置。
因此,您只需要将framePosition设置为要开始录制新音频数据的帧中的任何位置。