DSWaveformImage
DSWaveformImage 为在 iOS 中绘制音频文件的包络波形提供了几个接口。为此,您可以使用 WaveformImageDrawer
或 WaveformImageView
。
此外,您还可以通过创建一个 WaveformAnalyzer
实例来直接获取波形(归一化)样本。
更多相关 iOS 控件
您可能对以下用 Swift 编写的 iOS 控件也感兴趣
- SwiftColorWheel - 一个令人愉悦的颜色选择器
- QRCode - 可定制的二维码生成器
安装
- 使用 carthage:
github "dmrschmidt/DSWaveformImage" ~> 6.1
- 使用 cocoapods:
pod 'DSWaveformImage', '~> 6.1'
- 手动:检出仓库并构建 DSWaveformImage.framework,然后将其添加到您的项目中
- 或者直接将 DSWaveformImage 文件夹添加到您的项目中。
使用
计算始终在后台线程上执行并返回,因此在执行任何UI工作之前,请确保返回主线程。
要使用WaveformImageDrawer
创建一个UIImage
let waveformImageDrawer = WaveformImageDrawer()
let audioURL = Bundle.main.url(forResource: "example_sound", withExtension: "m4a")!
waveformImageDrawer.waveformImage(fromAudioAt: audioURL,
size: topWaveformView.bounds.size,
style: .striped,
position: .top) { image in
// need to jump back to main queue
DispatchQueue.main.async {
self.topWaveformView.image = image
}
}```
To create a `WaveformImageView` (`UIImageView` subclass):
```swift
let audioURL = Bundle.main.url(forResource: "example_sound", withExtension: "m4a")!
waveformImageView = WaveformImageView(frame: CGRect(x: 0, y: 0, width: 500, height: 300)
waveformImageView.waveformAudioURL = audioURL
最后,要获取音频文件波形样本
let audioURL = Bundle.main.url(forResource: "example_sound", withExtension: "m4a")!
waveformAnalyzer = WaveformAnalyzer(audioAssetURL: audioURL)
waveformAnalyzer.samples(count: 200) { samples in
print("so many samples: \(samples)")
}
它看起来如何
波形可以以3种不同的样式渲染:.filled
、.gradient
和.striped
。类似地,还有3个位置.top
、.middle
和.bottom
,它们相对于画布的位置。
- 下面可以看到每个效果的影响
迁移
在6.0.0版本中移除了Waveform
和UIImage
类别,以简化API。请参阅用法
了解当前用法。
实时观看
SoundCard允许您发送带有音频消息的明信片。
DSWaveformImage用于在由SoundCard发送的明信片上绘制音频消息的波形。
在App Store上查看。