Получение громкости звука во время воспроизведения - PullRequest
2 голосов
/ 09 июля 2011

У меня есть некоторые аудиоданные (необработанные 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 ...: - (


Любые предложения приветствуются: -)

1 Ответ

1 голос
/ 24 августа 2011

После нескольких дней и ночей я обнаружил, что проект приложения для Android под названием ringdroid может решить мою проблему.Это помогает мне получить массив значений усиления звука, так что я могу использовать его для рисования звуковой волны.

Кстати, по моему опыту, некоторые .AMR или .MP3 не могут быть проанализированы правильно, из-заслишком низкий битрейт ...

...