【问题标题】:Getting audio volume during playback在播放期间获取音频音量
【发布时间】:2011-10-01 19:52:06
【问题描述】:

我在字节数组中有一些音频数据(原始 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 ... :-(


欢迎提出任何建议:-)

【问题讨论】:

  • 你已经尝试过什么?你检查过AudioManager 是否对你有帮助吗?
  • 我用过 Visualizer,它工作正常。当然我现在有更高的最低 API。

标签: android audio volume


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    相关资源
    最近更新 更多