2010-10-21 40 views

回答

3

這個問題似乎有2個部分。 1)獲取Java Sound來處理OGG Vorbis格式。 2)避免文件。

對於(1),Java Sound API允許通過服務提供者接口添加額外的格式。這個想法是將一個編碼器/解碼器放入一個Jar中,並使用標準路徑和文件格式來標識編碼/解碼的類。

對於(2),它僅僅是將一個InputStream和所需的AudioFormat提供給AudioSystem靜態函數的相關方法。例如。 (僞代碼)

byte[] b = byteBuffer.array(); 
ByteArrayInputStream bais = new ByteArrayInputStream(b); 
InputStream is = new InputStream(bais); 
AudioInputStrream aisOgg = AudioSystem.getAudioInputStream(is);   
AudioInputStrream aisPcm = AudioSystem. 
    getAudioInputStream(pcmAudioFormat, aisOgg); 
+0

哦我不知道我可以從bytearray創建輸入流,但是我真的只有1個問題,pcm直接打開,java spi不會觸及它。 – Anon 2010-10-21 13:26:14

1

您可以使用ByteArrayInputStream,它是InputStream的子類。 如果您的數據流非常大,您可能必須寫入文件。