日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wav文件的文件头

發布時間:2025/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wav文件的文件头 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

wav文件的文件頭

wave文件的格式: 00H?4?char?"RIFF"標志?
04H?4?long?int?文件長度?
08H?4?char?"WAVE"標志?
0CH?4?char?"fmt"標志?
10H?4? ?過渡字節(不定)?
14H?2?int?格式類別(10H為PCM形式的聲音數據)?
16H?2?int?通道數,單聲道為1,雙聲道為2?
18H?2?int?采樣率(每秒樣本數),表示每個通道的播放速度,?
1CH?4?long?int?波形音頻數據傳送速率,其值為通道數×每秒數據位數×每樣
???????????????本的數據位數/8。播放軟件利用此值可以估計緩沖區的大小。?
20H?2?int?數據塊的調整數(按字節算的),其值為通道數×每樣本的數據位
???????????值/8。播放軟件需要一次處理多個該值大小的字節數據,以便將其
???????????值用于緩沖區的調整。?
22H?2? ?每樣本的數據位數,表示每個聲道中各個樣本的數據位數。如果有多
?????????個聲道,對每個聲道而言,樣本大小都一樣。?
24H?4?char?數據標記符"data"?
28H?4?long?int?語音數據的長度?

?

文件頭長度加起來是42字節,但是實際長度是44個字節(用UltraEdit打開一個WAVE文件,數一下就知道了)。如果用以個結構體來定義WAVE文件頭應該為:
struct?WAVEFILEHEADER
{
?char?chRIFF[4];
?DWORD?dwRIFFLen;
?char?chWAVE[4];
?char?chFMT[4];
?DWORD?dwFMTLen;
?PCMWAVEFORMAT?pwf;
?char?chDATA[4];
?DWORD?dwDATALen;
};

但是實際測試,并不是所有的wave文件頭都一樣。比較麻煩的就是windows下自帶的那個錄音機錄下的wav,文件頭有58個 Byte。所以,比較好的辦法是,首先讀取n長的一段字符,例如60個;然后從中查找關鍵字“data”,“data”之后的一個DWORD是實際音頻數 據的長度,得到這個長度len,再從這DWORD后開始讀取len個字節,就可以讀到文件尾。如果是雙聲道的,那么數據是交替存放的;如果是16bit采 樣的,每兩個字節會以小端的方式存儲一個AD值。根據這樣的方式,就可以順利讀取音頻數據了。

?

原文地址:http://www.cnblogs.com/huaping-audio/archive/2010/03/08/1680654.html

總結

以上是生活随笔為你收集整理的wav文件的文件头的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。