控件的使用没有问题。主要是想实现一个rm播放完之后连续播放下一个rm文件。
我使用了一个计时器来不断的判断是否
RealAudio1.GetLength = RealAudio1.GetPosition如果相等,则是一个文件已经结束,那么就立刻播放下一个。这个方法确实有用,但有时候会出现问题,下一个播放不了了。一直黑屏在那里。请问有什么其他的好办法,可以连续播放rm视频文件。

解决方案 »

  1.   

    //  刚刚写的,试过没有问题
    ....
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      sl: tstringlist;
      i: integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      i:= 0;
      RealAudio1.Source:= sl[i];
    end;procedure TForm1.RealAudio1PlayStateChange(ASender: TObject;
      lNewState: Integer);
    begin
      if lNewState = 0 then
        if i <> sl.Count -1  then
        RealAudio1.Source:= sl[i+1];
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      sl:= tstringlist.Create;
      sl.Append('D:\MediaFiles\MTV\刘德华-今天.mpg');
      sl.Append('D:\MediaFiles\MTV\心然--千年缘[DIY].mpg');
    end;
      

  2.   

    不好意思,忘记自增了,改动如下
    procedure TForm1.RealAudio1PlayStateChange(ASender: TObject;
      lNewState: Integer);
    begin
      if lNewState = 0 then
        if i <> sl.Count -1  then
        begin
          showmessage('放完了,到下一首');
          RealAudio1.Source:= sl[i+1];
          inc(i);
        end;
    end;