ios - 使用 AudioToolbox - Swift 从音频信号获取原始样本流

标签 ios swift audio signal-processing audiotoolbox

我想用我的 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/

相关文章:

ios - iOS 上的 Http 请求

iOS 6 应用内购买 - 无需使用需要用户密码的 'restoreCompletedTransactions' 即可访问已完成的交易数据

javascript - html5音频多个播放按钮

android - 如何在android上实现实时音频处理?

ios - 无法获取第一个单元格的正确索引

ios - inAppPurchases 空产品数组

快速循环...在核心数据中

ios - Swift:将开始和结束日期格式化为单个字符串

ios - 如何全局更改 UINavigationBar 颜色?

Python 在 Mac OS 上以 block 的形式解码 MP3