2017-10-09 51 views
2

我一直在通過文檔尋找這個答案。我發現AudioKit可以在您錄製或播放時實時繪製波形,但我想知道是否可以加載文件,並且可以完整地繪製波形,這樣我就可以看到整個文件的波形而不會回放。AudioKit - 繪製文件的完整波形

任何幫助將不勝感激。即使只是一個指向我應該看什麼對象的指針。

回答

2

您也可以使用目標C EZAudioPlot類,這是在AudioKitUI:

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]製作兩個堆積的曲線圖

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)) 
+0

雙通道文件的正確行爲是什麼?我注意到AKTable的實現只抓取第一個通道的數據。 – hhanesand

+0

@hhanesand您必須對文件數據進行一些預處理才能爲每個通道獲取兩個數據集或對通道進行求和。目標是一組浮點數,您可以將其加載到表中以查看。這對AudioKit來說是一個不錯的補充,它默認爲「總和」視圖,並且具有特定的頻道視圖。 –