明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

[Delphi] 自制real播放器

[摘要]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;

怎么样,运行一下这个程序,效果还不错吧。