我正在尝试在 Swift Playground 中设置一个基本示例(代码如下),但也使用 Objective-C 进行了尝试,得到了相同的结果。
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)
我还尝试使用 buffer:myAudioBuffer 命名参数,但这给出了“无关参数”错误。
最终,我想从缓冲区中获取原始 PCM 数据作为 Swift 浮点数组。
The AVAudioPCMBuffer
's PCMFormat
必须设置为AVAudioFile
's .processingFormat
and not its .fileFormat
: 我以为是一样的,但事实并非如此!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)