2009-07-21 103 views
9

我有一个短阵列的PCM样本。玩这个的最好方法是什么? 格式是8000Hz,单声道,16位,大端。 (PCM样本在生成的代码,并通过一些文件无法读取)如何在java中播放pcm原始数据

感谢

回答

4

随着javax.sound.sampled包是非常简单的,但是你必须使用一些样板。

这里有一个很好的教程:www.wikijava.org/wiki/Play_a_wave_sound_in_Java

基本上你必须建立与阵列的InputStream,并用它来创建一个AudioInputStream。您必须指定音频数据的格式。

然后,您打开输出流(SourceDataLine)并将音频流中的字节复制到该流中。

+0

感谢您的提示。我试过这种方法,但无法正确播放PCM数据,我只能听到噪音。可能与AudioFormat有些配置问题。但我找到了一个解决方法:我将pcm数据转储到FileOutputStream(/tmp/x.wav)并执行aplay命令(在Linux中的alsa实用程序)以播放/tmp/x.wav。 – Geos 2009-07-21 14:48:42