PCM Brut Octets [] Pour Audio sur Android
J'ai actuellement un PCM audio sous la forme d'un tableau d'octets. Le format est signé de 16 bits little endian. Je voudrais le convertir à certaines jouable format sur le Android, de préférence dans la version 3.2 ou ultérieure. Quelqu'un aurait-il des suggestions sur la façon dont cela peut être fait? J'ai fait quelques recherches et j'ai essayé le suivant ci-dessous, mais aucun n'a été couronnée de succès. Il serait très apprécié si quelqu'un peut proposer une meilleure façon ou d'indiquer où je suis allé mal.
J'ai essayé de créer un AudioFormat avec les bons paramètres audio, cependant Android ne prend pas en charge la javax.son.échantillonnées de la bibliothèque.
J'ai aussi essayé d'écrire le PCM données dans un fichier wave, mais je suis en cours d'exécution dans la difficulté à obtenir toutes les wav informations d'en-tête.
J'ai aussi essayé d'utiliser la classe AudioTrack offertes par le système Android, pour lire les données PCM. Cependant, je n'arrive pas à entendre le moindre son. Voici ma méthode:
public void playback(){
try{
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
audioTrack.write(audio, 0, 500000);
} catch(Throwable t){
Log.d("Audio","Playback Failed");
}
}
Toutes les suggestions seraient appréciées.
- mise à jour de ma réponse
Vous devez vous connecter pour publier un commentaire.
http://developer.android.com/reference/android/media/AudioTrack.html
Cette classe ressemble, c'est exactement ce dont vous avez besoin!
Écrit les données audio pour le matériel audio pour la lecture.
MODIFIER
Modifier votre flux de
AudioManager.STREAM_MUSIC
La question est de savoir si vous voulez jouer échantillons PCM vous recevoir à partir d'une source directement dans l'application Android ou si vous avez des fichiers externes vous avez besoin de convertir. Dans le premier cas aller dans le sens que jack57 décrit. Il est vraiment facile et vous pouvez même ajouter des marqueurs d'avoir un timing précis.
puis d'appeler la méthode d'écriture dans un cycle:
Dans le second cas, utilisez simplement un éditeur audio gratuit: http://audacity.sourceforge.net/download/. Vous pouvez stocker des échantillons PCM comme une .txt fichier, l'ouvrir dans l'éditeur et de l'enregistrer dans un format dont vous avez besoin...