MediaplayerとTimerを使って動画ファイルを流すには?

解決


もりぽん  2008-11-09 22:04:59  No: 32539  IP: 192.*.*.*

MediaPlayerでvideo1から5までの動画を順番に流すプログラムを作っています
これだと映像の冒頭部だけ流れていくのみで、1の最後まで流れてから2の動画へ、という風に流れません
過去ログも見てみましたが似たような質問はなかったようなので質問させていただきました。ご教授お願いいたします
以下コードです

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
video1:=video1+1;
if video1=6 then
Timer1.Enabled:=False;
MediaPlayer1.FileName := ExtractFilePath(application.ExeName)+'video'+IntToStr(video1)+'.wmv';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
video1:=video1+1;
if video1=6 then
Timer1.Enabled:=False;
end;

編集 削除
さっぱり  2008-11-09 22:33:52  No: 32540  IP: 192.*.*.*

変数の宣言部がないからさっぱりわからん。
Video1って何?integer?

それと
http://cult-drang.com/program/tips/windowsmediaplayer_length.html
この辺で解決できそうな気がするけど?

編集 削除
KHE00221  2008-11-10 05:31:19  No: 32541  IP: 192.*.*.*

たぶんこれでいけるはず

var
   Video: Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
    MediaPlayer1.FileName := ExtractFilePath(application.ExeName)+'video'+IntToStr(video1)+'.wmv';
    MediaPlayer1.Open;
    MediaPlayer1.Notify := True;
    MediaPlayer1.Play;
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
    if (MediaPlayer1.DeviceID <> 0) and (Video < 6) then
    begin
      MediaPlayer1.FileName := ExtractFilePath(application.ExeName)+'video'+IntToStr(video1)+'.wmv';
      MediaPlayer1.Open;
      MediaPlayer1.Play;
      Inc(Video);
    end;
end;

編集 削除
質問者  2008-11-10 19:07:55  No: 32542  IP: 192.*.*.*

>さっぱり様
説明不足で申し訳ありませんでした。video1はIntegerでした
URL参考にさせていただきました。ご回答どうもありがとうございました

>KHE00221様
おかげ様で解決しました。ご回答どうもありがとうございました

編集 削除