mediaplayer播放时出现‘no MCI device open’的错误,不知所措!!

时间:2022-04-04 10:56:28
mediaplayer已经在播放一首歌,现在我想换一首,通过以下代码实现
procedure TForm1.N12Click(Sender: TObject);
begin
 if opendialog1.Execute then
 begin
   mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   mediaplayer1.Open;
   mediaplayer1.Play;
 end;
end;
可是一旦选中一歌后,歌到没放,反而出现错误说‘no MCI device open’请问这是为什么?


还有个问题是我想通过一个suicheckbox来使播放的歌停止或继续,可是当我按一下suicheckbox时歌却不会停止,当我按第二下时,就会使系统用光内存,象死机一样了,请问这又是为什么??suicheckbox里的代码如下:
procedure TForm1.suiCheckBox1Click(Sender: TObject);
begin
    if suicheckbox1.Checked=true then
    begin
        mediaplayer1.stop;
    end else begin
                   mediaplayer1.Play;
             end;
end;

注:我用的界面是suiform,会不会这个有影响,因为好象代码用在checkbox里面是没问题的。

22 个解决方案

#1


有人知道吗

#2



mediaplayer1.close;
mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   mediaplayer1.Open;
   mediaplayer1.Play;

#3


outer2000(天外流星) (好象仍然不行,老问题

#4


我以前尝试做一个mp3播放器的时候也遇到过,帮顶

#5


好象不用CLOSE  和STOP,在其他的地方写就没事了

#6


mediaplayer1.close;
mediaplayer1.FileName:=opendialog1.FileName;
mediaplayer1.Open;
mediaplayer1.Play;

#7


难道就都没有什么办法吗???

#8


救命啊

#9


help

#10


我以前也遇到过,你打开要播入的文件了吗?还有路径对吗?这个问题就是设置错误!仔细检查一下,你就发现了

#11


对,我就是要打开的文件马上播放
我想路径用 mediaplayer1.FileName:=opendialog1.FileName;应该没问题吧

#12


先把这个路径显示出来看一下呀,看行吗?

#13


有的时候少一个“\”也是不行的

#14


lianshaohua(永远深爱一个叫“然”的好女孩儿!) 
路径显示是没问题的


#15


按照同样的方法再新建一个工程,看行吗?如果还是不行,把程序的那一部分发给我,我帮你改吧,

#16


email:class7class@163.com
发了后从QQ上通知我:270366978

#17


procedure TForm1.suiCheckBox1Click(Sender: TObject);
begin
    if (suicheckbox1.Checked=true)and(mediaplayer1.mod=mpplayering) then
    begin
        mediaplayer1.stop;
    end else begin
                   mediaplayer1.Play;
             end;
end;

#18


它好像不是程序的错误
我在本机器上好使
在别人机器上就不好使
而且是有的好使,有的不好使
可能是开发环境不同
或者是有的dll没有注册

#19


是不是系统中的mediaplayer的版本不同?

#20


procedure TForm1.N12Click(Sender: TObject);
begin
 if opendialog1.Execute then
 begin
   mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   MediaPlayer1.DeviceType :=dtAutoSelect;//加上這一句看看;
   mediaplayer1.Open;
   mediaplayer1.Play;
 end;
end;

#21


mediaplayer1.close;
mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   mediaplayer1.Open;
   mediaplayer1.Play;

#22


是MEDIAPLAYER的BUG,一般是出错在指定的DeviceType :=dtAutoSelect之后,它是根据你文件的扩展名来播放的,如果你的扩展名搞错了,它就会出这样的提示,比如你把*.AVI的文件改成扩展名是MPG的文件,它肯定放不了,这个有点难,你得换了MEDIAPLAYER这个控件,拿VS6自带的控件装上去就解决问题了

#1


有人知道吗

#2



mediaplayer1.close;
mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   mediaplayer1.Open;
   mediaplayer1.Play;

#3


outer2000(天外流星) (好象仍然不行,老问题

#4


我以前尝试做一个mp3播放器的时候也遇到过,帮顶

#5


好象不用CLOSE  和STOP,在其他的地方写就没事了

#6


mediaplayer1.close;
mediaplayer1.FileName:=opendialog1.FileName;
mediaplayer1.Open;
mediaplayer1.Play;

#7


难道就都没有什么办法吗???

#8


救命啊

#9


help

#10


我以前也遇到过,你打开要播入的文件了吗?还有路径对吗?这个问题就是设置错误!仔细检查一下,你就发现了

#11


对,我就是要打开的文件马上播放
我想路径用 mediaplayer1.FileName:=opendialog1.FileName;应该没问题吧

#12


先把这个路径显示出来看一下呀,看行吗?

#13


有的时候少一个“\”也是不行的

#14


lianshaohua(永远深爱一个叫“然”的好女孩儿!) 
路径显示是没问题的


#15


按照同样的方法再新建一个工程,看行吗?如果还是不行,把程序的那一部分发给我,我帮你改吧,

#16


email:class7class@163.com
发了后从QQ上通知我:270366978

#17


procedure TForm1.suiCheckBox1Click(Sender: TObject);
begin
    if (suicheckbox1.Checked=true)and(mediaplayer1.mod=mpplayering) then
    begin
        mediaplayer1.stop;
    end else begin
                   mediaplayer1.Play;
             end;
end;

#18


它好像不是程序的错误
我在本机器上好使
在别人机器上就不好使
而且是有的好使,有的不好使
可能是开发环境不同
或者是有的dll没有注册

#19


是不是系统中的mediaplayer的版本不同?

#20


procedure TForm1.N12Click(Sender: TObject);
begin
 if opendialog1.Execute then
 begin
   mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   MediaPlayer1.DeviceType :=dtAutoSelect;//加上這一句看看;
   mediaplayer1.Open;
   mediaplayer1.Play;
 end;
end;

#21


mediaplayer1.close;
mediaplayer1.stop;
   mediaplayer1.FileName:=opendialog1.FileName;
   mediaplayer1.Open;
   mediaplayer1.Play;

#22


是MEDIAPLAYER的BUG,一般是出错在指定的DeviceType :=dtAutoSelect之后,它是根据你文件的扩展名来播放的,如果你的扩展名搞错了,它就会出这样的提示,比如你把*.AVI的文件改成扩展名是MPG的文件,它肯定放不了,这个有点难,你得换了MEDIAPLAYER这个控件,拿VS6自带的控件装上去就解决问题了