如何控制播放器的显示窗口? ( 积分: 100 )

  • 主题发起人 主题发起人 半分钟
  • 开始时间 开始时间

半分钟

Unregistered / Unconfirmed
GUEST, unregistred user!
我初学delphi.
按教程做了一个播放器
(附教程:http://www.delphibbs.com/keylife/iblog_show.asp?xid=7499
首先,在Component Palette(组件取用区)的System分页中选取Me
diaPlayer组件,它将作为播放器的播放键;在Standard分页中选取四
个Button组件(分别为But-ton1、Button2、Bu tton3、Button4),它
将作为播放器的外部控制台;在Dialog分页中选取OpenDialog组件置
于Form1上(通过它,播放器才能取得被播放的文件),并用鼠标将它们
拖到恰当位置(如图1所示)。
然后在Object Inspector(对象检阅器)中将Form1的Caption属性
改为My_MediaPlayer, 将BorderIcons中的biMaximize设成False。将
四个组件的Caption属性分别改为‘&File’、‘C&lose’、‘CD Aud
io’、‘E&xit’。制成的界面如图2所示;双击Object Inspector中O
penDialog1的Filter属性右边的小框,在弹出的表格中输入多媒体文
件类型及过滤器,如图3所示。至此,播放器播放界面制作完成。
填入事件处理程序

1、文件打开事件处理
双击File按钮,在弹出的程序过程中填入下列语句:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
MediaPlayer1.DeviceType:=dtAutoSelect;
MediaPlayer1.FileName:=OpenDialog1.FileName;
if MediaPlayer1.FileName <>' '
then MediaPlayer1.open;
end;

2、文件关闭事件处理
双击close按钮,在弹出的程序过程中填入下列语句:
procedure TForm1.Button2Click(Sender: TObject);
begin
MediaPlayer1.FileName:='';
MediaPlayer1.close;
end;

3、CD Audio播放事件处理
由于在播放音乐CD时,要求MediaPlayer的FileName为空
所以其事件处理程序为:
procedure TForm1.Button3Click(Sender: TObject);
begin
MediaPlayer1.DeviceType:=dtCDAudio;
MediaPlayer1.FileName:='';
MediaPlayer1.open;
end;

4、退出事件处理程序
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
至此,媒体播放器制作完成。编译生成的可执行文件即是我们的
媒体播放器(可按F9直接执行该程序),在Windows环境下运行,用File
按钮调入播放文件,即可用它来欣赏你的多媒体了。
)

测试可以播放,但有一个问题,就是如果是播放电影的话,
会弹出一个新窗口来播放电影图像
我希望是在原窗体里显示电影图像而不要弹出那个新窗口,
请问要如何修改呢?
请各位高手指点...先谢谢了~~~~
 
我初学delphi.
按教程做了一个播放器
(附教程:http://www.delphibbs.com/keylife/iblog_show.asp?xid=7499
首先,在Component Palette(组件取用区)的System分页中选取Me
diaPlayer组件,它将作为播放器的播放键;在Standard分页中选取四
个Button组件(分别为But-ton1、Button2、Bu tton3、Button4),它
将作为播放器的外部控制台;在Dialog分页中选取OpenDialog组件置
于Form1上(通过它,播放器才能取得被播放的文件),并用鼠标将它们
拖到恰当位置(如图1所示)。
然后在Object Inspector(对象检阅器)中将Form1的Caption属性
改为My_MediaPlayer, 将BorderIcons中的biMaximize设成False。将
四个组件的Caption属性分别改为‘&amp;File’、‘C&amp;lose’、‘CD Aud
io’、‘E&amp;xit’。制成的界面如图2所示;双击Object Inspector中O
penDialog1的Filter属性右边的小框,在弹出的表格中输入多媒体文
件类型及过滤器,如图3所示。至此,播放器播放界面制作完成。
填入事件处理程序

1、文件打开事件处理
双击File按钮,在弹出的程序过程中填入下列语句:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
MediaPlayer1.DeviceType:=dtAutoSelect;
MediaPlayer1.FileName:=OpenDialog1.FileName;
if MediaPlayer1.FileName <>' '
then MediaPlayer1.open;
end;

2、文件关闭事件处理
双击close按钮,在弹出的程序过程中填入下列语句:
procedure TForm1.Button2Click(Sender: TObject);
begin
MediaPlayer1.FileName:='';
MediaPlayer1.close;
end;

3、CD Audio播放事件处理
由于在播放音乐CD时,要求MediaPlayer的FileName为空
所以其事件处理程序为:
procedure TForm1.Button3Click(Sender: TObject);
begin
MediaPlayer1.DeviceType:=dtCDAudio;
MediaPlayer1.FileName:='';
MediaPlayer1.open;
end;

4、退出事件处理程序
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
至此,媒体播放器制作完成。编译生成的可执行文件即是我们的
媒体播放器(可按F9直接执行该程序),在Windows环境下运行,用File
按钮调入播放文件,即可用它来欣赏你的多媒体了。
)

测试可以播放,但有一个问题,就是如果是播放电影的话,
会弹出一个新窗口来播放电影图像
我希望是在原窗体里显示电影图像而不要弹出那个新窗口,
请问要如何修改呢?
请各位高手指点...先谢谢了~~~~
 
要指定Mediaplayer的Display属性,设置视频图像的载体,如:
Mediaplayer1.Display :=Form1;
进一步可以设置播放尺度。
 
var sWinDir: String;

iLength: Integer;
begin
// Initialize Variable
iLength := 255;
setLength(sWinDir, iLength);
iLength := GetWindowsDirectory(PChar(sWinDir), iLength);
setLength(sWinDir, iLength);

With MediaPlayer1 do begin
Filename := sWinDir + '/Clock.avi'; //specify video file
DeviceType := dtAVIVideo; //set Device compatibility to AVI
Display := Panel1; //Set display device to a TPanel
Open;
Play;
end;
end;
 
谢谢Jonson_sunshine、谢谢yuanxianer,
我添加了一个groupboxx,再在Display里设置为groupboxx,
这样就可以在groupboxx窗口里显示了,
谢谢两位朋友了,
不过好像还有问题.做出来的播放器只能播放本地的影片,
不能播放像“http://127.0.0.1/1.asf”这样的流媒体,
我希望它能像Windows Media Player那样通过“打开URL”来播放流媒体,
不知道能不能做到呢?
 
这个我也来学习呀。
 
等待热心人..................
 
你说的是流媒体播放器,要实现并不容易,delphi本身好像并没有这类控件可以用,要
自己写(传输协议);或者下载第三方控件,可以网上找找。
 
谢谢Jonson_sunshine
偶还在学习中,
 

Similar threads

S
回复
0
查看
699
SUNSTONE的Delphi笔记
S
S
回复
0
查看
787
SUNSTONE的Delphi笔记
S
后退
顶部