【发布时间】:2012-12-14 20:47:43
【问题描述】:
我正在为 iPhone 开发一个应用程序来记录音频并保存该音频文件。我需要使用 VU 表创建一个类似于 Voice Memo 应用程序的 UI。我实现了录制音频的代码,但我不知道 VU 表的实现。期待回复。提前致谢。
【问题讨论】:
我正在为 iPhone 开发一个应用程序来记录音频并保存该音频文件。我需要使用 VU 表创建一个类似于 Voice Memo 应用程序的 UI。我实现了录制音频的代码,但我不知道 VU 表的实现。期待回复。提前致谢。
【问题讨论】:
VU 表仅以对数刻度 (dB) 显示信号的短期幅度。您需要在很短的时间间隔(例如 10 毫秒)内连续测量信号的幅度 (RMS),然后将 RMS 幅度转换为 dB 并更新仪表显示。
RMS_signal (V) = sqrt(sum(x^2) / N)
其中 N 是样本数(例如,对于 44.1 kHz 采样率的 10 ms 样本,N = 441)
Magnitude (dB) = 20.0 * log10(RMS_signal) + K
其中 K 是校准常数(dB 偏移)。
您可能还想添加一个低通滤波器来平滑显示的幅度。见stackoverflow.com/questions/2167513。
【讨论】:
您可以使用基于 OpenGL 的简单且易于扩展的框架gl-data-visualization-view 来显示紫外线计。您应该只添加 GLDataVisualizationView,将可视化类型设置为模拟仪表并将值设置为可视化。
【讨论】: