绘制圆形路径中的波形

时间:2017-12-22 17:32:50

标签: audiokit

尝试以圆形形式绘制文件波形并查看底层EZAudio的EZAudioPlot类docs告诉我这应该是可行的。但是我无法完全理解如何在链接方法中构造'points'参数。任何人这样做并且可以指出正确的方式吗?

更新

考虑到这一点,我认为我已经很好地掌握了EZAudioPlotting的工作原理。实际波形绘制在EZAudioPlotWaveformLayer上完成,它只是简单的CAShapeLayer子类。在创建EZAudioPlot时,会创建一个EZAudioPlotWaveformLayer并将引用存储在EZAudioPlot类的waveformLayer属性中。

实际波形是EZAudioPlotWaveformLayer类上的CGPath并且要操作它应该如下所示。

// Setup audio data for the plot
let file = EZAudioFile(url: url)
guard let data = file?.getWaveformData(withNumberOfPoints: pointCount) else {return}

// Setup the plot
let waveform = EZAudioPlot()
waveform.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)
waveform.gain = 10.0
// + any other property tweaking you need

//Get hold of the underlaying layer
let myLayer = waveform.waveformLayer!

// Create the default presentation for the waveforms as CGPath
let path = waveform.createPath(withPoints: waveform.points, pointCount: pointCount, in: EZRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)).takeRetainedValue()

// ??? Here somehow tweak the CGPath eg. into circular shape ???
newPath = plotPointsIntoCircleOrSomeOtherNiftyFunc(path)

// Stick new path to layer
myLayer.path = newPath

唯一的问题是,目前我还没有想过任何数学实际上在那个伪代码点实现任何有意义的东西

0 个答案:

没有答案