【问题标题】:AudioKit - Drawing full waveform of fileAudioKit - 绘制文件的完整波形
【发布时间】:2018-03-20 03:12:46
【问题描述】:

我一直在阅读文档以寻找答案。我看到 AudioKit 可以在您录制或播放时实时绘制波形,但我想知道您是否可以加载文件并完整绘制波形,这样我就可以在不播放的情况下看到整个文件的波形。

任何帮助将不胜感激。甚至只是一个指向我应该查看的对象的指针。

【问题讨论】:

    标签: swift waveform audiokit


    【解决方案1】:

    您也可以使用 AudioKitUI 中的 Objective C EZAudioPlot 类:

    let file = EZAudioFile(url: url)
    guard let data = file?.getWaveformData() else { return }
    
    let waveform = EZAudioPlot()
    addSubview( waveform )
    waveform.frame = NSMakeRect(0, 0, 200, 20)
    waveform.plotType = EZPlotType.buffer
    waveform.shouldFill = true
    waveform.shouldMirror = true
    waveform.color = NSColor.black
    waveform.updateBuffer( data.buffers[0], withBufferSize: data.bufferSize )
    

    我没有对这两种方法进行基准测试,但是对于较长的文件,绘图版本非常快。对于立体文件,使用 buffers[0] 和 [1] 制作两个堆叠图

    【讨论】:

      【解决方案2】:

      在此处的表格操场示例中绘制了一个波形:http://audiokit.io/playgrounds/Basics/Tables/

      基本上:

      let file = try AKAudioFile(readFileName: "drumloop.wav")
      let fileTable = AKTable(file: file)
      ...UI set up...
      addView(AKTableView(fileTable))
      

      【讨论】:

      • 双通道文件的正确行为是什么?我注意到 AKTable 实现只从第一个通道获取数据。
      • @hhanesand 您必须对文件数据进行一些预处理才能为每个通道获取两个数据集或对通道求和。目标是一个浮点数组,您可以将其加载到表中进行查看。如果默认为“sum”视图并具有特定的通道视图选项,这将是对 AudioKit 的一个很好的补充。
      • 无法让 AKTableView 工作。不过 EZAudioPlot 效果很好。
      • 您好,如果我想使用 NSData 而不是 URL 作为源,可以吗?谢谢!
      • @Cleversou 如果我是你,我会将数据写入文件,然后使用该文件的 url。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多