6

我一直在通过文档寻找答案。我看到 AudioKit 可以在您录制或播放时实时绘制波形,但我想知道您是否可以加载文件并完整绘制波形,这样我就可以看到整个文件的波形而无需回放。

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

4

2 回答 2

6

您还可以使用 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 )

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

于 2017-11-14T00:34:11.607 回答
3

这里有一个在表操场示例中绘制的波形:http: //audiokit.io/playgrounds/Basics/Tables/

基本上:

let file = try AKAudioFile(readFileName: "drumloop.wav")
let fileTable = AKTable(file: file)
...UI set up...
addView(AKTableView(fileTable))
于 2017-10-09T01:03:58.563 回答