【发布时间】:2019-12-30 08:40:54
【问题描述】:
这是我想要做的:
截图来自 6s iPhone。
我一直在使用 AVAudioPlayer,我想绘制一个看起来像第一个屏幕截图的波形。我正在使用FDWAVEFORMVIEW Github pod 来绘制波浪。但我很困惑如何绘制相同的波浪。
代码:
@IBOutlet weak var soundWaveView: FDWaveformView!
func createSoundWave() {
soundWaveView.delegate = self
soundWaveView.alpha = 0.0
soundWaveView.audioURL = mainTrackURL
soundWaveView.zoomSamples = 0 ..< soundWaveView.totalSamples / 3
soundWaveView.doesAllowScrubbing = true
soundWaveView.doesAllowStretch = true
soundWaveView.doesAllowScroll = true
soundWaveView.wavesColor = .lightGray
soundWaveView.progressColor = UIColor.init(red: 46/255, green: 188/255, blue: 191/255, alpha: 1.0)
}
func waveformViewWillRender(_ waveformView: FDWaveformView) {
startRendering = Date()
}
func waveformViewDidRender(_ waveformView: FDWaveformView) {
endRendering = Date()
NSLog("FDWaveformView rendering done, took %0.3f seconds", endRendering.timeIntervalSince(startRendering))
profileResult.append(String(format: " render %0.3f ", endRendering.timeIntervalSince(startRendering)))
UIView.animate(withDuration: 0.25, animations: {() -> Void in
waveformView.alpha = 1.0
})
}
func waveformViewWillLoad(_ waveformView: FDWaveformView) {
startLoading = Date()
}
func waveformViewDidLoad(_ waveformView: FDWaveformView) {
endLoading = Date()
NSLog("FDWaveformView loading done, took %0.3f seconds", endLoading.timeIntervalSince(startLoading))
profileResult.append(String(format: " load %0.3f ", endLoading.timeIntervalSince(startLoading)))
}
问题:如何显示与原图相同的波浪(第一张截图)?
谁能给我解释一下如何画相同的,我试着画这些波浪,但还没有结果。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
我相信您将不得不使用不同的库,它可以帮助您像第一个屏幕截图一样显示波浪。您正在使用的库/可可豆荚:
FDWaveformView只会像第二个屏幕截图那样为您提供波形视图,除非它允许自定义波形。不过在 Github 页面上没有提到自定义波形视图。 -
TBH 您可以自己制作第一个波形,如果您可以从库中获取音频值,制作 UIScrollview,设置最大条形宽度,具有滚动水平堆栈视图,左对齐并添加条形基于音频值 min/max 的高度约束
标签: ios swift user-interface beatsmusic soundwaves