国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

“錄音機”中MP3文件的玄機

2011-12-29 00:00:00謝作如
中國信息技術(shù)教育 2011年7期


  編者按:如果您是信息技術(shù)教師,或善于鉆研各種技術(shù)問題,那么在生活中,在教學(xué)中,一定親歷過無數(shù)的技術(shù)障礙,實施過不勝枚舉的解決方案,有冥思苦想時的抽絲剝繭,更有揮劍斬棘時的暢快淋漓??傆心菢右恍芭爬住边^程,讓您記憶猶新,總有那樣一些隱性的相關(guān)性讓您不斷刷新自己的認(rèn)知。
  現(xiàn)在,我們?yōu)槟_設(shè)了這樣一個陳列館,期待您能夠?qū)⑦@些珍貴的“診斷手記”陳列出來,在展示自己“技藝”的同時也為大家提供更多可借鑒的思路和經(jīng)驗。
  
  ● 一節(jié)公開課引發(fā)的疑惑
  在一節(jié)關(guān)于聲音處理的公開課中,教師設(shè)計了下面這一環(huán)節(jié)。
  學(xué)生利用Windows附件中的“錄音機”軟件,完成錄音任務(wù)后,教師要求學(xué)生打開另外一個.mp3格式的文件,進(jìn)行混音操作。但是,用“錄音機”打開該文件,就出現(xiàn)了這樣的錯誤提示:文件***不是合法的WAVE音效文件。教師利用這一錯誤提示,引出了“音頻格式”這一知識點,然后讓學(xué)生用音頻轉(zhuǎn)換軟件,把.mp3格式的文件轉(zhuǎn)為.wav格式的音頻文件,再進(jìn)行混音操作。
  評課時,有多位教師提出:Windows自帶的“錄音機”能將音頻文件另存為.mp3格式,但為什么不能打開教師給出的MP3文件?是教師提供的MP3文件不合法,還是別的原因?
  經(jīng)過現(xiàn)場測試,大家發(fā)現(xiàn)“錄音機”的確能夠?qū)AV文件轉(zhuǎn)存為MP3文件,具體操作過程如下:
  1.單擊“開始→程序→附件→娛樂→錄音機”,打開“錄音機”窗口;
  2.在“文件”菜單中,單擊“打開”,找到要轉(zhuǎn)換的WAV文件,雙擊將它打開;
  3.在“文件”菜單中,單擊“另存為”,然后單擊“更改”按鈕,隨后出現(xiàn)如圖1的對話框;
  4.在“格式”框中,單擊“MPEG Layer-3”,再單擊“確定”按鈕;
  5.在“文件名”框中,鍵入以.mp3為擴(kuò)展名的文件名稱,單擊“保存”按鈕。
  經(jīng)過“錄音機”另存的MP3文件占用的空間很小,使用任意一款音頻播放器都能正常播放。于是大家都很疑惑:
  1.“錄音機”另存的MP3文件的默認(rèn)擴(kuò)展名還是.wav,要自己手工更改為.mp3。那么,該文件是不是標(biāo)準(zhǔn)的MP3文件?
  2.為什么“錄音機”能打開自己保存的MP3文件,而不能打開其他軟件轉(zhuǎn)換的MP3文件(包括網(wǎng)上下載的和用GoldWave保存的MP3文件)?
  ● 深入分析
  回家后,我在網(wǎng)上試了很多關(guān)鍵詞,也找不到任何相關(guān)的說明資料。于是,自己做了一次實驗,對 Windows“錄音機”保存的MP3文件做了比較深入的探究。具體操作如下:
  
  1.用“錄音機”錄一段42秒的聲音,保存為16位、44KHz、立體聲的WAVE文件,命名a.wav,共7.20M;
  2.用“錄音機”將這段音頻另存為MP3文件,56KBit/s、24KHz、立體聲,命名a.mp3,文件大小為293K;
  3.用GoldWave打開a.wav,同樣選擇56KBit/s、24KHz、立體聲,另存為b.mp3,文件大小也是293K。
  通過文件大小和播放效果的對比來分析,基本上可以確定“錄音機”保存的MP3文件是標(biāo)準(zhǔn)的MPEG Layer-3格式文件。用Winamp查看文件信息,a.mp3和b.mp3文件的格式都是“MPEG-2層3”。但是,用“錄音機”打開a.mp3能正常播放,而打開b.mp3時會提示“不是合法的WAVE音效文件”。
  既然通過文件格式看不出問題所在,則只能使出“終極大法”了。我用WinHex分別打開a.mp3和b.mp3(如圖2、圖3),查看兩個文件二進(jìn)制內(nèi)容上的區(qū)別。WinHex是在Windows下運行的十六進(jìn)制編輯軟件,它能夠編輯任何一種文件類型的二進(jìn)制內(nèi)容(用十六進(jìn)制顯示)。
  根據(jù)MP3文件的格式定義,幀頭長度為4字節(jié),前11位為同步信息(sync),所有位均為“1”,接下來2位是版本(version),MPEG2為“10”,再接下來2位是層(layer),layer3為“01”,最后1位是CRC驗證,如果是“否”,則表示為“1”。那么,根據(jù)Winamp的文件格式,a.mp3和b.mp3的幀頭四個字節(jié)的內(nèi)容應(yīng)該是“1111111111110011”,用十六進(jìn)制表示為“FFF3”。
  經(jīng)過對兩個文件幀頭信息的比較,很容易看出二者的區(qū)別。b.mp3是從“FFF3”開始的,是標(biāo)準(zhǔn)的MP3文件,而a.mp3比b.mp3文件在“FFF3”前多了一行代碼,內(nèi)容為:“52494646F694040057415645666D74201E00000055000200C05D0000581B0000010000000C00010002000000A800010071056661637404000000C0B40F0064617461B8940400”。初步估計,這段代碼是“錄音機”軟件在MP3文件中另外添加的標(biāo)識,就是通過這個標(biāo)識來辨認(rèn)是否為“合法的音效文件”。
  試著把a.mp3的上述代碼選中,按“Ctrl+X”,將內(nèi)容剪切,然后保存。用“錄音機”打開這個文件,也提示錯誤:“不是合法的WAVE音效文件”,而該文件能夠用Windows Media Player、winamp和酷狗音樂等軟件正常播放。
  把剪切的內(nèi)容粘貼到b.mp3的頭部,然后保存。這時,用“錄音機”就能夠打開并正常播放。
  ● 結(jié)論和新的疑問
  經(jīng)過這樣的實驗后,我可以下結(jié)論了:
  1.Windows自帶的“錄音機”軟件能夠把WAVE文件壓縮為標(biāo)準(zhǔn)的MP3文件;
  2.因為某些原因,“錄音機”軟件在自己壓縮的MP3文件的頭部加上一定的信息,包含這些信息的MP3文件可以使用“錄音機”軟件播放。
  大家或許會問,“52494646F694040057415645666D74201E……”這些代碼到底代表什么信息呢?在WinHex中,這些代碼顯示為“RIFF”、“WAVE”和“fmt”之類的字符。利用這些信息,我在互動百科上找到了答案,摘要如下:
  
  每個WAVE文件的頭4個字節(jié)便是“RIFF”,RIFF是英文Resource Interchange File Format的縮寫。WAVE文件是由若干個Chunk組成的。按照在文件中出現(xiàn)的位置包括:RIFFWAVEChunk、FormatChunk、FactChunk(可選)、DataChunk。RIFFWAVEChunk以“FIFF”為標(biāo)示,之后緊跟著的為Size字段,該Size是整個WAV文件大小減去ID和Size所占用的字節(jié)數(shù),即FileLen-8=Size。然后是Type字段,為“WAVE”,表示是WAV文件。FormatChunk以“fmt”作為標(biāo)示。一般情況下Size為16。
  原來,“錄音機”軟件在保存MP3文件的同時,會在頭部寫上標(biāo)準(zhǔn)的WAVE文件頭信息。播放文件時,都會通過檢測文件頭信息,判斷是否為WAVE文件。這時,之前的疑惑豁然開朗!
  但是,“錄音機”軟件為什么要這樣設(shè)計呢?這個問題只能請微軟開發(fā)人員來回答了。

江城| 湖口县| 巴塘县| 安顺市| 乡城县| 铁力市| 桐梓县| 松江区| 沅陵县| 丰台区| 孝昌县| 柳州市| 嘉黎县| 宝坻区| 巴彦淖尔市| 成都市| 伽师县| 文山县| 丰都县| 常宁市| 安福县| 启东市| 澄城县| 旺苍县| 钟山县| 商水县| 井陉县| 岑巩县| 泰安市| 水富县| 新平| 会昌县| 宁蒗| 东山县| 墨脱县| 洪泽县| 汝南县| 黄石市| 鱼台县| 珠海市| 榆林市|