[Delphi] 自制real播放器
發表時間:2024-02-15 來源:明輝站整理相關軟件相關文章人氣:
[摘要]A.關于問題Real文件(后綴為.ra、.rm、ram等)是一種很流行的網上影音格式。與MP3音樂格式和MPEG影音格式相比,它具有體積更小巧、更適合網絡傳輸的特點。因而許多的新聞和娛樂網站都使用Real文件格式存儲新聞和影音資料,供用戶實時下載收聽觀看。Delphi是Borland公司提供的一種...
A.關于問題
Real文件(后綴為.ra、.rm、ram等)是一種很流行的網上影音格式。與MP3音樂格式和MPEG影音格式相比,它具有體積更小巧、更適合網絡傳輸的特點。因而許多的新聞和娛樂網站都使用Real文件格式存儲新聞和影音資料,供用戶實時下載收聽觀看。
Delphi是Borland公司提供的一種全新的Windows編程開發工具。由于它采用了具有彈性的和可重用的面向對象Pascal(Object-Oriented Pascal)語言,并有強大的數據庫引擎(BDE),快速的代碼編譯器,同時又提供了眾多出色的構件,受到廣大編程人員的青睞.在眾多的編程語言(如VB,PowerBuilder等)中脫穎而出.
Delphi 4完全支持ActiveX,您可以很方便地創建、注冊、安裝、發布和使用ActiveX控件、ActiveForm和OLE自動化對象,這應當歸功于"對象接口" 技術和DAX技術。控件是Delphi應用程序的程序構件,Delphi支持使用可視化部件所見即所得地建立應用程序。采用控件形式可以把對象嚴密封裝,并加上一層直觀外殼,有利于軟件調試和代碼重用。開發群體以控件為功能單位分工協作,比較容易實現工程化管理,從軟件規劃設計到測試修改都可以減少意外差錯,大大提高工作效率。
那么,我們現在可以利用Delphi強大的控件功能在應用程序中直接打開Real文件,并控制它播放和停止,還可以得到其它的相關信息,這將會為我們的應用程序增色不少。(哈哈:…)想知道怎么實現的嗎?快跟我來吧。
B.關于例子
下面,我們將利用Delphi4來開發一個簡單的Real文件的播放程序,當然作為例程序,它只有簡單的Real文件的打開、播放、暫停、停止和關閉功能,但麻雀雖小,五臟俱全嘛。下邊我們一步一步來實現這個小型的Real播放器吧。不過,在您進行下面的工作之前,我們還要注意,要想在Delphi中使用Real控件,您的計算機中必須安裝有RealPlayer播放程序,否則,哈哈:那可是不行的。
在Delphi4的可視化編程環境中,選擇File菜單下的“New Application”項,新建一個新的應用程序。然后選擇Component(組件)菜單下的“Import ActiveX Control...”(導入ActiveX控件)選項,選中其中的“Real Player ActiveX Control Library(Vision1.0)”項,并單擊Install,會出現一個install窗口。
如果要把它添加到一個已經存在的包中,在“Into existing package”對話框中的“File name:”窗口中選擇你想安裝的路徑,并單擊“OK”;會彈出一個確認的對話框,它問你“Package dclusr40.bpk will be rebuilt. Continue?”,單擊“Yes”;在彈出的窗口中單擊擊“Install”,該控件就安裝完畢。
如果要把它添加到一個新建的包中,在“Into new package“對話框中的 “File name:“窗口中選擇你想安裝的路徑,并新建一個包,假如命名為test,并單擊“OK”;它問你“Package test.bpk will be built. Continue?”,單擊“Yes”。
在彈出的窗口中單擊擊“Install”,該控件就安裝完畢。
這時,你會在控件條的ActiveX下發現一個新的控件,名字為RealAudio, 單擊它把它放在form中,并在該form中放一個OpenDialog控件和一個panel,在該panel上放六個button,他們的Caption屬性分別命名為“打開”、“播放”、“暫停”、“停止”、“靜音”、“退出”,并依次設置這些按鈕的名字屬性(name)“OpenRealFileButton”、“PlayButton”、“PauseButton”、“StopButton”、“MuteButton” 和“QuitButton”;設置panel、RealAudio的Align 屬性分別為Alleft 和AlClient。考慮到當歌曲可以播放時,“播放“按鈕才是可用的,所以,還應該在程序中對“播放”、“暫停”、“停止”按鈕的可用屬性(Enabled)進行控制,即只有當歌曲是可以播放時該按鈕才是可用的,并初始化這三個按鈕的可用屬性(Enabled)分別為“true”、“false”和“false”。另外,對于,靜音按鈕,在大多數情況下,該按鈕應該是個開關按鈕,所以,還要根據情況變化設置該按鈕的標題(Caption)屬性。其次,為了使增強程序的功能,還要設置打開對話框(OpenDialog)的文件過濾屬性(Filter),使其只能打開我們需要的文件。
C.關于代碼
最后分別在這六個Button的onClick事件中寫下如下代碼:
procedure TForm1.OpenFileButtonClick(Sender: TObject);
begin
if OpenRealFileDialog.Execute then
realaudio1.SetSource (OpenRealFileDialog.filename);
end;
procedure TForm1.PlayButtonClick(Sender: TObject);
var
pbCanPlay:wordbool;
begin
if RealAudio1.CanPlay (pbCanPlay) then {當能夠播放時再進行播放功能設置}
begin
RealAudio1.DoPlay ;{執行REAL控件的播放操作}
PlayButton.Enabled :=false;{設置播放按鈕不可用}
PauseButton.Enabled :=true;{設置暫停按鈕為可用}
StopButton.Enabled :=true;{設置停止按鈕為可用}
end
end;
procedure TForm1.PauseButtonClick(Sender: TObject);
var
pbPlayPause:wordbool;
begin
if RealAudio1.CanPlayPause (pbPlayPause) then{當可以進行暫停設置時再進行操作}
begin
RealAudio1.DoPlayPause ;{執行REAL控件的暫停功能}
PauseButton.Enabled :=false;{設置暫停按鈕不可用}
PlayButton.Enabled :=true;{設置播放銨鈕為可用}
end
end;
procedure TForm1.MuteButtonClick(Sender: TObject);
var
pbmute:wordbool;
begin
pbmute:=RealAudio1.GetMute (pbmute) ;{得到當前的靜音狀態}
RealAudio1.SetMute (not pbmute);{設置當前靜音狀態的相反操作}
if pbmute then{根據情況判斷并設置靜音按鈕的CAPTION屬性}
MuteButton.Caption :='閉音(&M)'
else
MuteButton.Caption :='開音(&M)';
end;
procedure TForm1.QuitButtonClick(Sender: TObject);
begin
RealAudio1.FreeOnRelease ;
close;{釋放資源并關閉程序}
end;
怎么樣,運行一下這個程序,效果還不錯吧。