2010-05-07 76 views
5

在我的應用程序中,我從freeTTS包繼承javastreamingaudio類,然後繞過Write方法,該方法將一個字節數組發送到SourceDataLine進行音頻處理。我將這個和後續的字節數組寫入一個緩衝區,而不是寫入數據行,然後將其帶入我的班級並嘗試處理成聲音。我的應用程序處理聲音作爲數組的浮動,所以我轉換爲浮動並嘗試處理,但總是得到靜態聲音回來。將原始字節轉換爲音頻聲音

我相信這是要走的路,但我錯過了一些方法。我知道聲音是作爲幀進行處理的,每幀都是一組字節,所以在我的應用程序中,我必須以某種方式將字節處理爲幀。我以正確的方式看待這個嗎?提前感謝任何幫助。

回答

12

首先,您要將您的字節數組轉換爲InputStream。然後,使用AudioSystem從該Inputstream創建一個AudioInputStream。一旦你有你的音頻流,你基本上有音頻,你可以把它寫入文件或做任何你喜歡的。

ByteArrayInputStream oInstream = new ByteArrayInputStream(ayAudioData); 
AudioInputStream oAIS = AudioSystem.getAudioInputStream(oInstream); 
+2

已經爲您的解決方案找出了這一點,但是我們已經做到了。希望它有一天能幫助別人。 – 2010-05-19 13:43:39