2011-04-20 89 views
4

我是Android开发人员和我的第一个应用程序的新手我已经创建了一个允许录制音频的应用程序。音频记录与音频播放一样正常工作。应用程序中缺少的一件事是在录制过程中以vu表的形式向用户反馈。在iOS平台上,我相信有一个内置的vu表可以用于应用程序。我一直无法在Android平台上找到相应的版本。在Android中录制音频时的VU(音频)计数器

我一直在寻找致力于Android开发和谷歌搜索的各种论坛,但我还没有发现任何有用的东西。

有没有人知道用于录制音频的数字VU表的任何编码示例?

有没有人知道任何编码示例显示正在进行录制时的反馈?

回答

0
+0

啊,优秀的文章,非常感谢。我能再问一个问题吗?在其中一篇文章中,它使用MediaRecorder进行引用并使用MediaRecorder.getMaxAmplitude函数。我正在使用AudioRecord类,它没有这个功能。关于用等效计算取代getMaxAmplitude的任何想法。 – Coffman 2011-04-21 05:48:51

+0

@Coffman - 对不起,我还没有太多处理音频系统。我的建议是在Tricoder应用程序之类的东西中查看源代码,看看它是否做了你需要做的事情。 – 2011-04-24 18:38:02

2

你将不得不编写你自己的VU表,但这并不难。

首先,获取最近一组音频采样的当前最大幅度。在您用AudioRecord填充的缓冲区上循环,并记下最高值。这几乎是MediaPlayer.getAmplitude在内部所做的。

现在你已经有了一个幅度,你只需绘制一个针或一个不断调整大小的矩形(其中height = MAX_RECT_HEIGHT * curAmplitude/CONST_MAXIMUM_AMPLITUDE)或者任何在自定义视图的draw()方法中。你将不得不查看高峰和衰变等,但这就是它的全部。

你可以在这里查看内置的VU米动态壁纸的来源:VU meter