2024年4月4日发(作者:)
LAYER
在DELPHI中我们可以用MEDIAPLAYER来管理媒体控件界面外部设备,如声卡,MIDI
乐器,CD-ROM驱动器等.
MEDIAPLAYER组件位于SYSTEM选项卡上.它是一组按钮的组合,其上有播放
(PLAY),暂停(PAUSE),停止(STOP),下一标记(NEXT),上一标记(PREVIOUS),快进(STEP),快退
(BACK),录制(STARTRECODING)与弹出(EJECT)等9个按钮.
其主要属性有:
DEVICETYPE属性:用来指定或改变被MEDIAPLAYER组件控制的设备类型,选
DTAUTOSELECT最合适为自动测试.
DISPLAY:用来指定一个窗口控制来显示播放时的视屏输出.一般为PANEL元件,
若缺省则自动打开一个窗体显示.
FILENAME:用来指定或改变即将播放或录制的媒体文件名.
LENGTH:指定在打开的多媒体设备中的媒体长度.
STARTPOS:指定播放起始点.
ENDPOS:指定播放中止点.
AUTOOPEN:是否自动打开在DEVICETYPE属性中指定的多媒体设备.
主要方法有:
BACK:调用该方法将使当前正在播放的媒体回退一定数量的帧.回退的帧数决定
于FRAMES属性的值.
CLOSE:用于关闭打开的多媒体设备.
EJECT:用于弹出打开的多媒体设备中国的媒体.
NEXT:用于移动当前位置到下一帧的开始处.
OPEN:用于打开一个多媒体设备,在调用该方法之前必须在DEVICETYPE属性
中指明所用的多媒体设备.
PLAY:用于播放已经载入打开的多媒体设备中媒体.
PAUSE:设置暂停或播放状态.
PREVIOUS:前进到,前一帧开始处.
REWIND:回到文件首部.
STEP:前进一定数据量的帧
STOP:停止播放.
例:制作超级播放器(WVD)
首先在SYSTEM选项卡上选择MEDIPLAYER在窗体上画出来.
设置属性.
设置MEDIPLAER的FILENAME属性指向某一个具体文件路径.例如:
设置DEVICETYPE为DTAUTOSELECT
设置AUTOOPEN为TRUE
也可以在窗体画出一个PANEL如图.
设置MEDIAPLAER的DISPLAY为PANEL1
2.实现”全屏播放”与”窗口播放”
改form1的BorderStyle属性值为:bsnone;
1Click(Sender:TObject);
begin
e:=false;
:=0;
:=0;
:=;
:=;
:=;
:=;
:=;
:=;
yRect:=rect(0,0,,);
end;
ick(Sender:TObject);
begin
close;
end;
如要实现窗口可直接实现:
yRect:=rect(0,0,,);
如要实现窗口与全屏之间转换可直接定义PANEL1的宽度与高度,及边界。
3.弹出与关闭CD-ROM驱动器.
在使用之前必须先在引用单元文件,即系统调用处调用MMSYSTEM.
在USES
WINDOWS,MESSGAE,MMSYSTEM,SYSUTILS,……
然后加入代码.
procedureTForm1.N2Click(Sender:TObject);
begin
mcisendstring('setcdaudiodooropen',nil,0,handle);
end;
procedureTForm1.N3Click(Sender:TObject);
begin
mcisendstring('setcdaudiodoorclosed',nil,0,handle);
end;
4.声道控制
与3相同也必须加入MMSYSTEM
立体声事件中加入
mcisendstring(‘setallaudioallon’,nil,0,handle);
左声道控制加入
mcisendstring(‘setallaudioalloff’,nil,0,handle);
mcisendstring(‘setallaudiolefton’,nil,0,handle);
右声道控制加入
mcisendstring(‘setallaudioalloff’,nil,0,handle);
mcisendstring(‘setallaudiorighton’,nil,0,handle);
5.例.利用TRACKBAR1来测试多媒体长度,并控制快进及后退。
在界面上画有时间控件及TRACKBAR1控件(在WIN32选项卡上)。
设置TIMER的时间间隔为100
代码:
layer1Click(Sender:TObject;Button:TMPBtnType;
varDoDefault:Boolean);
begin
:=;
ncy:=10;
yRect:=rect(0,0,,);
end;
1Timer(Sender:TObject);
begin
on:=on;
end;
ar1Change(Sender:TObject);
begin
on:=on;
;
end;


发布评论