我用TMediaPlayer播放音乐文件
procedure palymusic;//播放音乐
begin
  MediaPlayer.filename:= filename;
  MediaPlayer.open;
  MediaPlayer.notify:= true;
  MediaPlayer.play;
end;procedure stopplay;//停止播放
begin
  MediaPlayer.stop;
  MediaPlayer.notify:= false;
end;procedure TForm1.MediaPlayerNotify(Sender: TOject);//控件的事件
begin
  if MediaPlayer.notify then
  begin
    MediaPlayer.rewind;
    MediaPlayer.play;
    MediaPlayer.notify:= true;
  end;
end;这样做出现的现象是第一次播放可以,第一次停止也可以,但停止过后在播放就会死掉
为什么呢?

解决方案 »

  1.   

    这个问题我遇到过,你试试在停止的时侯加入MediaPlayer.close; 这样就管了。
      

  2.   

    没道理呀,我试过了,完全用你的源码,没有一点点问题,你是不是修改mediaplayer的是么属性了?
      

  3.   

    下面是我的源码,你看看和你的是不是一样的,mediaplayer的所有属性都是默认的。
    procedure TForm1.Button1Click(Sender: TObject);
    var filename:string;
    begin
      filename:='C:\WINDOWS\Media\Windows XP Logoff Sound.wav';
      MediaPlayer.filename:= filename;
      MediaPlayer.open;
      MediaPlayer.notify:= true;
      MediaPlayer.play;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      MediaPlayer.stop;
      MediaPlayer.notify:= false;
    end;procedure TForm1.MediaPlayerNotify(Sender: TObject);
    begin
      if MediaPlayer.notify then
      begin
        MediaPlayer.rewind;
        MediaPlayer.play;
        MediaPlayer.notify:= true;
      end;
    end;
      

  4.   

    想问个很菜的问题
    procedure TForm1.MediaPlayerNotify(Sender: TObject);
    begin
      if MediaPlayer.notify then
      begin
        MediaPlayer.rewind;
        MediaPlayer.play;
        MediaPlayer.notify:= true;
      end;
    我在编译的时候通过不了,是不是前面要声明一下,该怎么声明啊?
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var filename:string;
    begin
      filename:='C:\WINDOWS\Media\Windows XP Logoff Sound.wav';
      MediaPlayer.filename:= filename;
      MediaPlayer.open;
      MediaPlayer.notify:= true;
      MediaPlayer.play;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      MediaPlayer.stop;
      MediaPlayer.notify:= false;
    end;procedure TForm1.MediaPlayerNotify(Sender: TObject);
    begin
      if MediaPlayer.notify then
      begin
        MediaPlayer.rewind;
        MediaPlayer.play;
        MediaPlayer.notify:= true;
      end;
    end;