TMediaPlayer出现No MCI device open错误 ,如何解决?(100分)

  • 主题发起人 主题发起人 白乐天
  • 开始时间 开始时间

白乐天

Unregistered / Unconfirmed
GUEST, unregistred user!
编好的程序在我的机器上没问题,在别人的机器上(xp)出现No MCI device open错误。

相关代码如下:
procedure TmainForm.MediaPlayer1Notify(Sender: TObject);
begin

If MediaPlayer1.Position=MediaPlayer1.Length then

begin

MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;

end;




procedure TmainForm.playBGM;
begin


MediaPlayer1.Close;
MediaPlayer1.FileName:='BGM/BGM00.wma';


MediaPlayer1.AutoRewind:=true;
MediaPlayer1.open;
try
MediaPlayer1.Notify:=True;
MediaPlayer1.Play;
except
end;



end;


请问哪里有错误?如何解决?
 
是不是你的TMediaPlayer没初始化,或初始化参数不对呀.
 
应该如何初始化?
我现在的疑问是为什么在我的机器上没问题,在朋友的机器上就有问题。
 
不好说,如果在自己机器能用,在别人机器上不能用的话,一般是少什么文件了,比较DLL等的东西.
 
不是不能用,是偶尔会报No MCI device open错误。
 
我遇到过,问题原因,建议你单步检查;
1、有可能MediaPlayer1.FileName文件不存在
2、可以MediaPlayer1不处于Play或Open状态,但你却将其close或Stop
3、我有现在的播放器源码,我自己写的有兴趣我可以发给你;
 
可能是第2个原因,我的playBGM过程确实存在没有play就close的情况(但在我的机器上没报过错,在朋友机器上报了)。那么如何判断mediaplayer目前的状态呢?我再看看。

我的信箱biolaotao@sina.com,麻烦楼上大哥发给我一份吧,十分感谢!
 
你播放的是什么格式的文件?是不是没有装相应的解码器?
 
WMA文件,应该不需要装特殊解码器吧?
 
清新空气第2点是正确的。
我也遇到过。
 
谢谢清新空气老大,你的代码已经收到。十分感谢。
依你的看法,我的playbgm过程该如何改写呢。
 
没办法,看源码,No MCI device open 错误是 mediaplayer.play过程报的,说明没有分配到MCI设备,说明 mediaplayer.open 那步未起作用。于是给mediaplayer.open前加上mediaplayer.wait:=true;
使参数中带着MCI_WAIT,让MCI返回前不给程序使用,不过这样做仍然没有用。现在费解中。等待指点。
 
绝望了,不用TMediaplayer了。改用bass了,条条大路通罗马。从此让Mediaplayer见鬼去。
 

Similar threads

I
回复
0
查看
719
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
948
import
I
后退
顶部