怎样在delphi中播放rm格式的文件,有相关控件吗?能用mediaplayer控件播放吗?(100分)

  • 主题发起人 主题发起人 myyyw7467
  • 开始时间 开始时间
M

myyyw7467

Unregistered / Unconfirmed
GUEST, unregistred user!
送上100分,请指教。
 
转贴一篇文章


打造自己的real播放器

--------------------------------------------------------------------------------

一、问题的提出
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文件,并控制它播放和停止,
还可以得到其它的相关信息,这将会为我们的应用程序增色不少。(哈哈:…)想知道怎么实现的吗?快
跟我来吧。
二、一个例子
下面,我们将利用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),使其只能打开我们需要的文件。最以后分别在
这六个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.StopButtonClick(Sender: TObject);
var
pbCanStop:wordbool;
begin

if RealAudio1.CanStop (pbCanStop) then
{当能够进行停止操作时再进行程序设置}
begin

RealAudio1.DoStop {执行REAL控件的停止功能}
StopButton.Enabled :=false;{设置停止按钮为不可用}
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;

怎么样,运行一下这个程序,效果还不错吧。
当然,这个程序还可以进一步地改进,就可以成为你手中自己的Real播放器了,例如可以增加播放表的
功能及循环播放等等。另外,通过此例程,我们还可以掌握在Delphi中对其它控件的编程方法。好了,
有了好的东东不要忘记告诉我呀。
 
对不起,我要脱离realplay的支持却能播放 rm 文件的方法
 
我以前试过,好象只能放几秒!
 
楼主看一下这个
http://new.playicq.com/dispdocnew.php?id=7180

名称: RealOne 自由编程 -- 作者:心月
开发语言: 多媒体相关
简介: 版本:Version 1.2 [0724]  
大小:3.70 MB
发布日期:2003-07-24
下载地址:http://lhr.qqvip.com/show.php
For Delphi6 and Delphi7
更新说明:
建立容错机制,在错误操作后自动恢复上次的设置;
抛弃原来的DLL注册方式,程序移动时不会重复注册DLL文件;
兼容DELPHI 7 和 DELPHI 6;
解决播放RM文件时不能显示视频的问题
打开DEMO演示程序时,请不要打开REALONE播放器;
在NT/2000/XP使用时,请以管理员身份登陆使用;
安装: 文件菜单->Component->Install Packages->Add...
用途:
客户端不需要任何安装,可任意移动。直接使用REAL的接口,REAL升级的时候只要把新的DLL添加进去就可以了。连重新编译都不需要。只需要在程序中执行LHR_RealOne.Load即可,自动判断环境。
介绍:
控件 文件夹里面的是控件,安装上就可以。生成一个LHRSoft类的LHRSoft_RealOne;
Demo 是使用演示,里面的LHRSoft文件夹随程序同文件夹,RealONE接口文件全部在里面。
注意事项:
在开发时,打开演示程序既可,无须安装RealOne。发布程序时把LHR文件夹放在你的程序根目录下。例如你的程序放在c:mypro,则c:myproLHRSoft。客户端不需要任何与REAL相关的东西,随便你要怎么移动都可以。支持的格式mp3;mpga;mpg;rmx;rmp;wav;avi;swf;rm;rmj;rms;mnd;rmvb;rmc;ra;ram;等。
在需要载入REAL时候先执行 LHRSoft_RealOne.Load,使用结束后用 LHRSoft_RealOne.UnLoad释放。
 
用rmoc3260.dll可以做到你想要的东东!
 
播放rm格式的文件,不能用mediaplayer控件播放。
要想播放rm只能自己做控件了!
 
后退
顶部