在iphone中实现VU表

时间:2010-04-19 06:51:09

标签: iphone audio

我正在为iPhone开发一个应用程序来记录音频并保存该音频文件。我需要创建一个类似于带有VU表的Voice Memo应用程序中的UI。我实现了录制音频的代码,但我不知道VU电表的实现。期待回复。提前谢谢。

2 个答案:

答案 0 :(得分:5)

VU表只是以对数刻度(dB)显示信号的短期幅度。您需要在短时间间隔(例如10 ms)内连续测量信号的幅度(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

答案 1 :(得分:4)

您可以使用基于OpenGL的简单且易于扩展的框架gl-data-visualization-view 来显示UV计。您应该只添加GLDataVisualizationView,将可视化类型设置为模拟仪表并设置值以进行可视化。