2009-07-21 9 views
9

J'ai des échantillons PCM dans un tableau court. Quelle est la meilleure façon de jouer cela? Le format est 8000Hz, Mono, 16 bits, big endian. (Les échantillons PCM sont générés dans le code et non lire certains fichiers)comment jouer pcm données brutes en Java

Merci

Répondre

4

Avec le paquet javax.sound.sampled il est à peu près simple, mais vous devez utiliser un passe-partout.

Voici un bon tutoriel sur ce point: www.wikijava.org/wiki/Play_a_wave_sound_in_Java

Fondamentalement, vous devez créer un InputStream de votre choix et l'utiliser pour créer un AudioInputStream. Là, vous devez spécifier le format de vos données audio.

Ensuite, vous ouvrez un flux de sortie (SourceDataLine) et copiez les octets du flux audio dans ce flux.

+0

Merci pour le conseil. J'ai essayé cette méthode, mais je ne pouvais pas lire les données pcm correctement, je pouvais seulement obtenir du bruit. Probablement un problème de configuration avec AudioFormat. Mais j'ai trouvé un travail: j'ai jeté les données pcm à une commande FileOutputStream (/tmp/x.wav) et exec'd aplay (alsa utility in linux) pour lire /tmp/x.wav. – Geos