C# 照片+;C语言中的视频幻灯片循环#

C# 照片+;C语言中的视频幻灯片循环#,c#,loops,video,photo,slide,C#,Loops,Video,Photo,Slide,我正在做一个项目。项目的逻辑是:;文件夹中的照片也将包含文件夹中的视频。照片将依次显示在pictureBox中。当涉及到最后一张照片时,它将按顺序播放视频文件夹中的视频,一旦此处的视频完成,它将再次播放 public string[] imageFiles = Directory.GetFiles(@"C:\Users\HP\Desktop\Photos"); public string[] videoFiles = Directory.GetFiles(@"C:\Users\HP\Deskto

我正在做一个项目。项目的逻辑是:;文件夹中的照片也将包含文件夹中的视频。照片将依次显示在pictureBox中。当涉及到最后一张照片时,它将按顺序播放视频文件夹中的视频,一旦此处的视频完成,它将再次播放

public string[] imageFiles = Directory.GetFiles(@"C:\Users\HP\Desktop\Photos");
public string[] videoFiles = Directory.GetFiles(@"C:\Users\HP\Desktop\Videos");

int i = 0;

public void Form3_Load(object sender, EventArgs e)
{
    int w = Screen.PrimaryScreen.Bounds.Width;
    int h = Screen.PrimaryScreen.Bounds.Height;

    this.Size = new Size(w, h);

    pictureBox1.Size = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

    timer1.Interval = Form2.sure;

    pictureBox1.ImageLocation = imageFiles[0];
}

private void timer1_Tick(object sender, EventArgs e)
{
    i++;

    if (i >= imageFiles.Length)
    {
        timer1.Stop();
        axWindowsMediaPlayer1.Visible = true;
        pictureBox1.Visible = false;

        var myPlayList = axWindowsMediaPlayer1.playlistCollection.newPlaylist("MyPlaylist");

        foreach (var item in videoFiles)
        {
            var mediaItem = axWindowsMediaPlayer1.newMedia(item);
            myPlayList.appendItem(mediaItem);
        }
        axWindowsMediaPlayer1.currentPlaylist = myPlayList;
    }
    else
    {
        pictureBox1.ImageLocation = imageFiles[i];
    }
}
我做了所有这些,当视频结束时,照片正在播放,但当视频结束时,黑屏不断出现,我希望视频返回并显示照片。
如果您能帮助我,我将非常高兴。

换句话说,在第一个序列完成后,它不会循环回到开头,只是显示黑色占位符?在任何时候,您都不会执行任何重置代码<代码>i永远不会重置为0。您需要具备检测视频播放列表结束的条件,并设置
i=0以便在下一个计时器上勾选,它会循环回图像。我这样做了,但因为我停止了计时器,所以没有任何更改。如果我不停止计时器,它会每3秒更改一次视频(计时器间隔3000)。好的,听起来您需要检测最后一个视频何时完成,然后重新启动计时器,并将
I
重新初始化为0。我不明白你有什么问题。