怎样知道一个多媒体设备有没有被打开(100分)

  • 主题发起人 主题发起人 dlluli
  • 开始时间 开始时间
D

dlluli

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个多媒体程序中,在程序结束的时候我用了如下语句:
procedure TForm1.FormDestroy(Sender:TObject);
begin

MediaPlayer1.Stop;
MediaPlayer1.Close;
end;

在程序打开了一个多媒体设备好,结束时可以正常终止。但是在窗口刚生成,没有使用多媒体
设备,我关掉窗口。他会出现一个异常:Project MediaPlayer.exe raisede exception calss
EMCIDeviceError with message 'No mci device open!'.
我想知道怎样知道一个mci device有没有打开。怎样解决这个问题。请各位大虾不吝赐教。必以高分送之。
 
TMediaPlayer有这方面的属性呀!
 
mediaencoder是有这方面属性的,而且不只一个。
mediaplay也应该有你找找看。
 
呵呵,这个问题已经解决了。原来可以用MediaPlayer 的Capabilities属性。
if mpCanPlay in MediaPlayer1.Capabilities then

MediaPlayer1.Stop;
MediaPlayer1.Close;
谢谢大虾的指点。
 
其实可以不用mediaplayer的什么属性的,只要自己设置一个布尔型的变量就可以了
系统初始化时,这个变量是0,只有打开设备时,变量变成1。关闭设备时再设置成0
关闭程序时检测这个变量是0还是1做相应处理就成了。
 
用不着,你关掉mediaplayer所在的窗体mediaplayer自然会停止的
如果控件不在窗体内可使用
procedure TForm1.FormDestroy(Sender:TObject);
begin

with mediaplayer1do

begin

MediaPlayer1.Stop;
MediaPlayer1.Close;
end;

end;

 

Similar threads

后退
顶部