掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TWindowsMediaPlayerで個々のファイルを連続再生させるには (ID:33641)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
みなさんお世話になっております。環境はWindowsXP Delphi6Personalです。 TWindowsMediaPlayerでファイルを個々に与えて再生終了の度に次のファイルを 連続自動再生させようとしていますがうまくいきません。 本来はWindowsMediaPlayer1.currentPlaylist.appendItem(Media);で一括してプレイヤーに読み込んで再生するのが普通だと思いますが、対応外のファイルMOVなどが混ざるとエラーになります。 そのためWindowsMediaPlayer1.URL:=ファイル名 で再生させると実行してくれますから WindowsMediaPlayer1PlayStateChangeのイベントを利用して 次の再生を自動でできないか試みているのですがうまくいきません。 プレイヤーの再生ボタンをクリックしてやると再生するのですが。 よろしくご指導下さい。下記のようなコードでテストしています。 PlayListNo:integer; //プレイ中のリスト番号 procedure TForm1.Button1Click(Sender: TObject); begin PlayListNo:=0;//開始番号を指定する。 MoviePlay; end; procedure TForm1.MoviePlay; begin WindowsMediaPlayer1.URL:=ListBox1.Items.Strings[PlayListNo]; if PlayListNo< ListBox1.Items.Count then Inc(PlayListNo); end; //イベントを監視して終わったら次のファイルを実行させたいのだが・・・・・? procedure TForm1.WindowsMediaPlayer1PlayStateChange(Sender: TObject; NewState: Integer); const // SDK そのままの説明文 PLAY_STATE_STR: array[0..10] of string = ('Undefined', 'Stopped','Paused','Playing','ScanForward','ScanReverse', 'Buffering','Waiting','MediaEnded','Transitioning','Ready'); var s: string; begin if (Low(PLAY_STATE_STR) <= NewState) and (NewState <= High(PLAY_STATE_STR)) then s := PLAY_STATE_STR[NewState]; if s='MediaEnded' then begin MoviePlay;end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.