次のコードを使用して、プレイリストに動画を作成してループさせました。
private void Form1_Load(object sender, EventArgs e)
{
var pl = axWindowsMediaPlayer1.playlistCollection.newPlaylist("plList");
pl.appendItem(axWindowsMediaPlayer1.newMedia(@"C:\ABC\abc.mp4"));
pl.appendItem(axWindowsMediaPlayer1.newMedia(@"C:\XYZ\xyz.mp4"));
axWindowsMediaPlayer1.currentPlaylist = pl;
//axWindowsMediaPlayer1.settings.setMode("loop", true);
axWindowsMediaPlayer1.Ctlcontrols.play();
}
ただし、プレイリストの次のアイテムは、プレイリストの現在のアイテムが終了する 2 秒前に再生されることがわかりました。次に、新しいアイテムが最初から再生されます (つまり、アイテムの最初の 2 秒間が、現在のアイテムの終了前に 1 回、次のアイテムの開始時に 1 回、合計 2 回再生されます)。
現在のアイテムの再生が完了した後にのみ次のアイテムがロードされるようにするにはどうすればよいですか?
要件 2:プレイリストの最後を検出する方法 (つまり、すべてのビデオの再生後)
PlayStateChangeイベントでキャプチャしようとしましたが、 Media Ended、Stopped、Lastのいずれの状態でもキャプチャできません