2013-04-06 24 views
0

我正在試圖爲我寫的一些音頻處理軟件添加一項功能。寫入Wav未知長度的文件(Java)

我的軟件已經從麥克風輸入捕捉聲音,實時處理聲音,並將結果發送到揚聲器輸出。 (這已經是一個線程化的應用程序。)我一直在使用javax.sound.sampled。*並使用wav數據(將其轉換爲數值樣本並將其轉換爲數字樣本以進行處理)

我想添加一個功能將原始輸入和會話的轉換輸出保存到wav文件,但創建新wav文件(例如WavFile.newWavFile(...))的簽名似乎要事先知道多少幀因爲它們是不確定時間的實時會話,所以我無法事先知道這些信息。

我錯過了什麼嗎?有沒有辦法解決這個問題?數據或樣本文件,然後進行後期處理?

回答

0

大多數音頻文件編寫者在寫入輸出流之前需要知道完整的文件大小。有一個名爲Tritonus的開源項目,它是一個可以嘗試使用AudioOutputStream插件的Java聲音API的實現。