關於windows音源的古老文章一篇

《delphi中的MP3回放》
作者:Simon Lau


如果你還沒有聽說過MP3那種音樂格式,那你與世隔絕不下兩年了。一張CD碟,每一分鐘,就要佔據硬盤10M,故一張碟60分鐘的,就要用600M。MP3則對WAV進行了壓縮,一些聽衆聽不到的冗餘信息都被剪除了,比如一些過高的頻段,所以MP3能節省容量。無論如何,它是壓縮文件,既然如此,就要解析成普通數據。我沒有時間講細節,再說我自己也沒徹底搞清楚。有興趣深究者,不妨參考stanislav holenda的《delphi中的數字音響》。
如何解析MP3?
如果你是一個設計頭頭,你可以去MPEG小組,找那些發明了MP3編碼的人。閱讀相關資料,然後你可以編寫一套算法,或許是一個發聲系統,可以回放的。要不,你若像我一樣笨,你可以到www.xaudio.com網,去下載他們的音頻軟件,免費的呢。
如果你求諸於VCL,嘿,你可以在頃刻間寫完子程序。這個控件對delphi2(及更高版本)兼容,允許使用xaudiodll.但是,它適用範圍不廣。
首先,你要新建一個窗體,把xaudioplayer控件插入其中。還有一個按鈕。按鈕的響應函數如下:
procedure tform1.button1click(sender:tobject);
begin
 xaudioplayer1.inputopen('mymp3.mp3');  //單引號中的文件名請自行更改
 xaudioplayer1.play;
end;
這樣,你就有了一個MP3播放器。
欲停止播放,請用函數xaudioplayer1.stop;
欲暫停播放,請用函數xaudioplayer1.pause;
當播放器用完後,你要關機。
procedure tform.formdestroy(sender:tobject);
begin
 xaudioplayer.outputreset;   //清除聲音緩存
 xaudioplayer.exit;          //關閉IO設備
真的很簡單,你不覺得嗎?不幸的是,xaudioplayer控件很難覓。它在xaudio.dll中。那裏有控制播放器對象的各種方法。你可以參考sample.dpr。
好累,就說到這裏吧。今後如果知識更新,或許我會新寫文章的。
http://www.cs.ucl.ac.uk/students/s.lau
[email protected]

發佈了10 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章