2009-07-21 81 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