求哪位老哥看看,delphi中的莫名其妙的问题!VOD系统中MCI关闭出错! (100分)

I

ike

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure PlayStop(DeviceID:DWORD);//请注意,问题就在这里,第二次使用playstop()时就死机了,
//请哪位老哥帮忙看看。因为这MCI以前没怎么用过,先谢谢!

begin

// mcisendcommand(DeviceID,MCI_STOP,MCI_WAIT,0);
mcisendcommand(DeviceID,MCI_CLOSE,0,0);
end;

 
试试这个:
procedure PlayStop(DeviceID:DWORD);
var
G_Parms: TMCI_Generic_Parms;
begin

mcisendcommand(DeviceID,MCI_CLOSE, MCI_WAIT,Longint(@G_Parms));
end;

 
原来MCI打开一次后,如果要下一首,只要用openfile再打开就行了,不用先关闭MCI,这我是蒙出来的,
没想到也成了。不过还是感谢上面的大哥对我的问题的支持。这分我还是先自己拿着,因为我要问
的东西实在是太多了。
 
请各位老哥继续关注,问题没有解决,不关它并不等于不要关。当我第二次打开同一首歌时,
问题就来了。“打开文件错误!”因为没有playstop,所以看来这个playstop还心须用。

请问playstop()中的 MCI_WAIT 有什么意义呢?
 
我對MCI也不是很熟悉,不過我有個建議,你看看TMediaPlayer的原碼吧,關於Open,Close等部分,
應該可以找到答案的.
 
现在我干脆换用mediaplayre,但是在再一次打开开始播入的歌曲文件时就会死机。这是为什么呢?
我在每打开下一曲时都用了close。
如果谁有关于mediaplayer的资料,请贴一份,有帮助的一定给分。
 
我這樣測試的結果,無任何問題.
procedure TForm1.Button1Click(Sender: TObject);
begin

with OpenDialog1do

if Execute then

begin

MediaPlayer.Close;
MediaPlayer.FileName:=FileName;
MediaPlayer.Open;
MediaPlayer.Play;
end;

end;
 
多人接受答案了。
 
顶部