2012-10-31 50 views
0

任何人都可以告訴我如何讀取音頻文件,將其存儲在字節數組中並繼續顯示其波形?我對Java的知識是非常基礎的。如果任何人都可以將我與Java音頻編程學習資料聯繫起來,那就太好了。讀取音頻文件並用Java顯示波形。

+2

沒有ügoogle一下? – PermGenError

+0

認真,谷歌有很多隻是「如何讀取在Java中的音頻文件」命中 – peroija

+1

請參閱此鏈接http://stackoverflow.com/questions/86083/any-good-recommendations-for-mp3-sound -libraries-for-java – PermGenError

回答

6

您需要了解一些關於脈衝編碼調製的基本知識,因爲波形是以數字形式表示爲離散字節/值。大多數波形格式只是一些標題/元數據,然後是一串脈衝碼。

這裏是數字採樣和脈衝編碼調製的引物:

http://www.speakingcode.com/2011/12/31/primer-on-digital-audio-and-pulse-code-modulation-pcm/

在此之後,這是相對簡單的。加載文件,通過元數據讀取所以你知道採樣率,位深度等,然後基本上建立一個與pcm值的數組..一般的Java文件閱讀技術將正常工作,如在Java教程,在線許多頁面以及堆棧溢出的一些相關問題。

http://docs.oracle.com/javase/tutorial/essential/io/

一旦你有你的陣列,你的價值觀有效地代表了波的振幅位置那個時間點......那些規模和值轉換爲圖像 - 有這麼多的方式來做到這一點,這真的取決於你。有些事情要考慮的是你關心時間軸,還是隻關心波形的形狀?如果您只關心形狀,則更容易,因爲您無需在x軸上適當標記時間和刻度(假設您遵循x軸上的時間標準和y軸上的幅度)

+2

請添加代碼而不是鏈接,因爲鏈接可能已過期。我在第二個鏈接中獲得了404。 – bhavikkumar