关于全屏播放(50分)

  • 主题发起人 主题发起人 Yamazaki
  • 开始时间 开始时间
Y

Yamazaki

Unregistered / Unconfirmed
GUEST, unregistred user!
播放VCD或AVI时使视频窗口为全屏?
MediaPlayer的Display必须为空的!
 
MediaPlayer1.DisplayRect:=Rect(0,0,Screen.Width,Screen.Height);
原理:指定MediaPlayer的显示区域为整个屏幕。不用指定Display
 
太简单了,不要用MediaPlayer,import activex,用active movie2.0或
windows mediaplayer
 
LeonSu:
你的方法根本不行,还是窗口大小。
CathyEagle:
如果一定要用Mediaplayer能实现吗?
 
form1.align := client;
use LeonSu's ways!
 
我没用过mediaplayer,不过应该可以这样做:
用findwindow得到播放窗口的句柄,再sendmessage强行使它最大化。
 
displaysize:=FullScreen;搞定
 
用DirectDraw(),只是要自己定义头文件和声明!
 
我是这样解决的,form1(主窗体)是form2上的mediaplayer的display属性
效果还可以,老兄不妨一试
procedure TForm2.Button5Click(Sender: TObject);
begin

hideTaskbar;
form1.Left:=0;
form1.Top:=-17;
form1.Clientwidth:=Screen.Width;
form1.ClientHeight:=Screen.Height;
form1.Invalidate;
Player.DisplayRect:=form1.ClientRect;
end;

//----------------------------------------
procedure TForm2.hideTaskbar;
//隐藏

var

wndHandle : THandle;

wndClass : array[0..50] of Char;

begin


StrPCopy(@wndClass[0], 'Shell_TrayWnd');

wndHandle := FindWindow(@wndClass[0], nil);

ShowWindow(wndHandle, SW_HIDE);

end;

恢复视窗时再调用下列过程
procedure TForm1.showTaskbar;

var

wndHandle : THandle;

wndClass : array[0..50] of Char;

begin


StrPCopy(@wndClass[0], 'Shell_TrayWnd');

wndHandle := FindWindow(@wndClass[0], nil);

ShowWindow(wndHandle, SW_RESTORE);

end;



 
有时即使你设置了DisplayRect为全屏大小的区域
也不一定能够全屏播放,有时候可以,但大多数情
况下左右两边会有两个很宽的黑边。
我遇到过这种问题!

将文件作成mpeg2流就可以全屏播放了。
 
procedure TForm1.Panel1Click(Sender: TObject);
begin

Mediaplayer1.Close
if Opendialog1.Execute then

begin

Mediaplayer1.FileName := Opendialog1.FileName
Mediaplayer1.Open
Mediaplayer1.Display := Panel1;
Mediaplayer1.DisplayRect := panel1.ClientRect
end;

end;


procedure TForm1.Panel1Resize(Sender: TObject);
begin

Mediaplayer1.DisplayRect := panel1.ClientRect
end;
 
设置Form2的属性为:
Border:=bsNone;
最大化显示。再调用我上面写的方法,没错的,我经常用它
 
如果设置 Border:=bsNone;
以后不能再最大化
 
已知道答案。
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
925
DelphiTeacher的专栏
D
D
回复
0
查看
880
DelphiTeacher的专栏
D
后退
顶部