2011-03-31 162 views
2

我想寫一個程序,將使用java創建24位wav文件。 java聲音API不支持24位音頻,所以我試圖從頭開始編寫文件。這起初是偶然的興趣,但它已成爲一個史詩級的位,字節,符號和塊的追求。24位wav文件的數據塊是否有符號或無符號字節?

做了24bit的WAV文件的數據塊已簽署或無符號字節?

Java不無符號字節是令人沮喪的。我已經讀過,位掩碼的整數可以用來表示無符號的字節,但是我想知道如何在最終的文件輸出中表示。

對不起了分歧......我的問題是「做一個24bit的WAV文件的數據塊已簽署或無符號字節?」

無論哪種方式,我將要弄清楚這個符號/無符號的業務,但我無法找到關於在引用我已經找到了數據塊的答案。

+0

.wav文件只是一個容器。示例數據的實際符號性取決於用於存儲音頻的任何編解碼器。 – 2011-03-31 19:12:29

回答

1

根據this(和我自己的親身經歷)微軟WAVE文件使用二進制補碼符號整數表示PCM採樣比8位的。默認情況下,這些整數的字節順序是小尾數。

你可以使用SoX包中的soxi來驗證你自己的測試文件(你確實有一些,對嗎?)。

請注意,WAVE文件也可以按住不是普通PCM等音頻格式。

+0

謝謝,該工具看起來非常有用。我昨天看了那個非常網頁,但是我錯過了那個鏈接。 – 2011-03-31 19:50:25

2

我也可以確認WAV文件中的24位數據已簽名(當數據以WAVE_FORMAT_PCM格式存儲時)。更一般地說,WAVE_FORMAT_PCM數據總是有符號的,除非它是每個採樣8位。

+0

感謝您的回覆。我有這樣的感覺,但我找不到任何具體的確認。我在網上發現的大部分信息都是關於波形中的16位音頻。 – 2011-03-31 19:52:25

相關問題