2011-07-09 4 views
2

J'ai des données audio (AAC brut) dans un tableau d'octets pour la lecture. Pendant la lecture, j'ai besoin d'obtenir son volume/amplitude pour dessiner (quelque chose comme une onde audio en jouant). Ce que je pense maintenant est d'obtenir le volume/amplitude de l'audio actuel toutes les 200 millisecondes et l'utiliser pour dessiner (en utilisant un canevas), mais je ne suis pas sûr de savoir comment faire.Obtention du volume audio pendant la lecture

. . . .

** 2011/07/13 ajoutez ce qui suit **

Désolé vient d'être retardé sur un autre projet jusqu'à présent.

Ce que j'ai essayé est d'exécuter les codes suivants dans un fil, et de jouer mon audio 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){} 
} 

Mais seulement obtenir une valeur fixe, pas de volume dynamique ...

Et j'ai aussi trouvé une classe nommée Visualizer, mais malheureusement, ma plate-forme cible est Android 2.2 ... :-(


Toutes les suggestions sont :-)

+0

Qu'avez-vous déjà essayé? Avez-vous vérifié si le [AudioManager] (http://developer.android.com/reference/android/media/AudioManager.html) vous aide? –

+0

J'ai utilisé Visualizer et ça marche. Bien sûr, j'ai min API plus élevé maintenant. – kotucz

Répondre

1

bienvenue Après des jours et des nuits, j'ai trouvé qu'un projet d'application Android appelée ringdroid peut résoudre mon p roblem. Il m'aide à obtenir un tableau de valeur de gain audio, de sorte que je peux utiliser pour dessiner mon onde sonore.

BTW, mon expérience, certains .AMR ou .MP3 ne peuvent pas être analysés correctement, en raison de bitrate trop faible ...

Questions connexes