获取播放期间的音量

发布于 2024-11-19 08:32:52 字数 749 浏览 0 评论 0原文

我在字节数组中有一些音频数据(原始 AAC)用于播放。在播放过程中,我需要获取其音量/幅度来绘制(类似于播放时的音频波)。

我现在的想法是每 200 毫秒获取当前音频的音量/幅度,并将其用于绘图(使用画布),但我不知道该怎么做。

。 。 。 。

** 2011/07/13 添加以下内容 **

抱歉,其他项目被推迟到现在。

我尝试的是在线程中运行以下代码,并播放我的 AAC 音频。

a loop
{
  // int v=audio.getStreamVolume(AudioManager.MODE_NORMAL);
  // int v=audio.getStreamVolume(AudioManager.STREAM_MUSIC);
  int v=audio.getStreamVolume(AudioManager.STREAM_DTMF);
  // Tried 3 settings above
  Log.i(HiCardConstants.TAG, "Volume - "+v);
  try{Thread.sleep(200);}
  catch(InterruptedException ie){}
}

但只能得到一个固定值,而不是动态音量...

而且我还发现了一个名为 Visualizer 的类,但不幸的是,我的目标平台是 Android 2.2...:-(


欢迎任何建议 :-)

I have some audio data (raw AAC) inside a byte array for playback. During playback, I need to get its volume/amplitude to draw (something like an audio wave when playing).

What I'm thinking now is to get the volume/amplitude of the current audio every 200 milliseconds and use that for drawing (using a canvas), but I'm not sure how to do that.

.
.
.
.

** 2011/07/13 add following **

Sorry just been delayed on other project until now.

What I tried is run the following codes in a thread, and playing my AAC audio.

a loop
{
  // int v=audio.getStreamVolume(AudioManager.MODE_NORMAL);
  // int v=audio.getStreamVolume(AudioManager.STREAM_MUSIC);
  int v=audio.getStreamVolume(AudioManager.STREAM_DTMF);
  // Tried 3 settings above
  Log.i(HiCardConstants.TAG, "Volume - "+v);
  try{Thread.sleep(200);}
  catch(InterruptedException ie){}
}

But only get a fixed value, not dynamic volume...

And I also found a class named Visualizer, but unfortunately, my target platform is Android 2.2 ... :-(


Any suggestions are welcome :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盗心人 2024-11-26 08:32:52

经过日日夜夜,我发现了一个名为 ringdroid 的 Android 应用项目
可以解决我的问题。
它帮助我获得音频增益值数组,以便我可以用来绘制声波。

顺便说一句,根据我的经验,由于比特率太低,某些 .AMR 或 .MP3 无法正确解析......

After days and nights, I found that an Android app project called ringdroid
can solve my problem.
It helps me to get an audio gain value array, so that I can use to to draw my sound wave.

BTW, as my experience, some .AMR or .MP3 can't be parsed correctly, due to too low bitrate...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文