我正试图在Swift操场上建立一个基本的例子(下面的代码),但是我也尝试了使用Objective,结果也是一样的。
import AVFoundation
let fileURL = ... // have tried a wav file and a aiff file
let myAudioFile = AVAudioFile(forReading: fileURL, error: nil)
let myAudioFormat = myAudioFile.fileFormat
let myAudioFrameCount = UInt32(myAudioFile.length)
var myAudioBuffer = AVAudioPCMBuffer(PCMFormat: myAudioFormat, frameCapacity: myAudioFrameCount)
// have also tried a smaller frameCapacity到目前为止,它工作得很好,但随后结束时如下:
var myError: NSError?
myAudioFile.readIntoBuffer(myAudioBuffer, error:&myError)我也尝试用缓冲区命名这个参数:myAudioBuffer,但是这会产生一个“无关的参数”错误。
最终,我希望从缓冲区中取出原始PCM数据,作为一个Swift浮点数数组。
发布于 2014-06-06 19:52:18
AVAudioPCMBuffer的PCMFormat必须被设置为AVAudioFile's .processingFormat而不是.fileFormat:我以为它们是一样的,但事实并非如此!
https://stackoverflow.com/questions/24088470
复制相似问题