SoundWave 0.1.4

SoundWave 0.1.4

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布时间上次发布2018年11月
SPM支持构建时添加依赖库(SPM)

Bastien Falcou维护。



SoundWave 0.1.4

SoundWave

CI Status Version Carthage compatible Swift 4.2.x License

SoundWave是一个可定制的视图,表示随时间变化的音频。

功能

  • 实时添加和显示音频电平测量值
  • 设置已存在的音频电平测量数组并播放/暂停/继续
  • 自定义背景、渐变起始和结束颜色、电平条属性等。

需求

  • iOS 10.0+
  • Xcode 10.0+
  • Swift 4.2+

安装

CocoaPods

CocoaPods是一个Cocoa项目依赖管理器。

要使用CocoaPods将SoundWave集成到Xcode项目中,请在您的Podfile中指定它:

pod "SoundWave"

运行 $ pod install 将框架添加到您的 Xcode 项目中。

Carthage

Carthage 是一种去中心化的依赖管理器,它可以构建您的依赖并提供二进制框架。

要使用 Carthage 将 SoundWave 添加到您的 Xcode 项目中,请在您的 Cartfile 中指定它。

github "bastienFalcou/SoundWave"

运行 $ carthage update 构建框架,并将构建好的 SoundWave.framework 拖入您的 Xcode 项目中。

用法

查看示例应用以获取示例。它包含以下示例:实时录制声音并显示电平测量,之后播放声音,调整视图大小,更改颜色以及许多其他属性。

添加视图

AudioVisualizationView 可以添加到故事板或使用程序方式实例化

let audioVisualizationView = AudioVisualizationView(frame: CGRect(x: 0.0, y: 0.0, width: 300.0, height: 500.0)))
view.addSubview(audioVisualizationView)

自定义 UI

电平测量条

AudioVisualizationView 继承自 UIView,因此您可以更改所有继承的属性(例如 backgroundColor)。

您可以为图形更改宽度、圆角半径和条与条之间的空间。这将强制图形重绘。

self.audioVisualizationView.meteringLevelBarWidth = 5.0
self.audioVisualizationView.meteringLevelBarInterItem = 1.0
self.audioVisualizationView.meteringLevelBarCornerRadius = 0.0

您还可以更改渐变的起始和结束颜色。

self.audioVisualizationView.gradientStartColor = .white
self.audioVisualizationView.gradientEndColor = .black

这些定义为 IBInspectable 的变量也可以在 Interface Builder 中设置。

实时显示声音电平

On-The-Fly

一个声音电平代表声音样本的功率分贝。首先确保你处于 写入 模式

self.audioVisualizationView.audioVisualizationMode = .write

你表示电平的图表将在每次你通过调用以下操作实时通过新的值时(重新)绘制。该值需要是 介于 0 和 1 之间

self.audioVisualizationView.add(meteringLevel: 0.6)

你需要根据你的录音系统的 最小最大分贝数值 计算 百分比。如果一个值超过 1,则电平条不会完全显示在视图的范围内。

如果你需要重置你的图表,只需调用以下内容

self.audioVisualizationView.reset()

播放现有的电平参数数组

Play

AudioVisualizationView 可以接受一个电平参数的数组来播放。这些值都收集在它的 meteringLevelsArray 属性中,也就是一个介于 0 和 1 之间的浮点值数组。如果值不足以填充屏幕或者值太多,这些值将分别被 外推集中 以便很好地覆盖整个屏幕宽度。

self.audioVisualizationView.audioVisualizationMode = .read
self.audioVisualizationView.meteringLevels = [0.1, 0.67, 0.13, 0.78, 0.31]
self.audioVisualizationView.play(for: 5.0)

指定你的声音的持续时间,以便视图可以以相同的速度播放(并且你的电平与用户听到的声音强度相匹配)。

注意:你可以通过调用来暂停/继续/停止这个过程。

self.audioVisualizationView.pause()
self.audioVisualizationView.play(for: durationLeft)
self.audioVisualizationView.stop()

如前所述,你可以在任何点调用 reset() 来重置视图。

许可

SoundWave 适用于 MIT 许可。参见 LICENSE 文件以获取更多信息。