FDWaveformView
FDWaveformView是显示您应用程序中音频波形的一种简单方式。它是一种很好的可视化方式,可以显示正在播放的音频文件或选择文件中的位置。
使用
要使用它,请使用Interface Builder或通过编程方式添加一个FDWaveformView
,然后按照此示例加载您的音频。注意:如果您的音频文件没有文件扩展名,请参阅此SO问题。
let thisBundle = Bundle(for: type(of: self))
let url = thisBundle.url(forResource: "Submarine", withExtension: "aiff")
self.waveform.audioURL = url
功能
设置播放进度以突出显示波形的一部分
self.waveform.progressSamples = self.waveform.totalSamples / 2
放大以仅显示波形的一部分,当然,放大将平滑地重新渲染以显示更多细节
self.waveform.zoomStartSamples = 0
self.waveform.zoomEndSamples = self.waveform.totalSamples / 4
启用手势操控以放大、平移或快进
self.waveform.doesAllowScrubbing = true
self.waveform.doesAllowStretch = true
self.waveform.doesAllowScroll = true
支持动画以改变属性
UIView.animate(withDuration: 0.3) {
let randomNumber = arc4random() % self.waveform.totalSamples
self.waveform.progressSamples = randomNumber
}
通过绘制比屏幕上看到的更多像素来创建抗锯齿波形。此外,如果调整大小(自动布局),如果必要,我将渲染更多细节以避免像素化。
支持< strong>iOS8+ strong>和Swift 3。
包含单元测试,可以通过 Travis CI 成功运行。
安装
使用 Swift Package Manager 将其添加到您的项目中。在 Xcode 中,这只是一个简单的操作:File > Swift Packages > Add Package Dependency... 就完成了。下面展示了为旧项目提供的其他安装选项。
贡献
此项目的布局基于 https://github.com/fulldecent/swift4-module-template。如果您想更改布局,请首先更改该项目。此外,您可能还会赞赏该项目有“食谱”——您不仅更改代码,还要解释为什么要做这些。作为维护人员,这使我工作得更加简单。在类似的意义上,如果您正在引入非次小更改,如果您能参考其他项目(如 AlamoFire)会很好,这些项目已经看到了并讨论了您所涉及的类型的设计挑战。)再次感谢,我们真的非常感谢您的贡献。