我想用我的 iPhone 录制音频信号,然后我想逐一访问该信号的样本。我在网上找到了一些类似的例子,但我从未找到一个例子(在 Swift 中)来实际读取和操作所有原始样本。我怎样才能使用 Swift 做到这一点?
最佳答案
我解决了我的问题,我终于能够创建一个 float 组来存储和操作音频样本,执行以下操作:
let file: AVAudioFile!
do {
file = try AVAudioFile(forReading: mySourceURL!)
} catch {
print("Error:", error)
return
}
let totSamples = file.length
let format = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: file.fileFormat.sampleRate, channels: 1, interleaved: false)
let buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: AVAudioFrameCount(totSamples))
try! file.read(into: buffer)
var floatArray = Array(UnsafeBufferPointer(start: buffer.floatChannelData?[0], count:Int(buffer.frameLength)))
其中 mySourceURL!是记录信号的 URL。
关于ios - 使用 AudioToolbox - Swift 从音频信号获取原始样本流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42010720/