C# 使用C在.avi文件中查找#

C# 使用C在.avi文件中查找#,c#,avi,seek,wmp,C#,Avi,Seek,Wmp,首先,我是C#的新手,所以请容忍我 我正在制作一个应用程序,它在windows media player中显示一个.avi文件,如下所示: private void button1_Click(object sender, EventArgs e) { axWindowsMediaPlayer1.URL = @"C:BlaBla\Family Guy\Season 10\S10E16.HDTV.x264-LOL.avi"; } axWindowsMediaPla

首先,我是C#的新手,所以请容忍我

我正在制作一个应用程序,它在windows media player中显示一个.avi文件,如下所示:

private void button1_Click(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.URL = @"C:BlaBla\Family Guy\Season 10\S10E16.HDTV.x264-LOL.avi";
    }
axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 300d;
我发现在.avi文件中不能快进或快退,因为它没有索引。但使用axWindowsMediaPlayer1的WMP滑块,可以将文件设置为在特定点播放。例如,启动电影,然后将滑块拖动到05:00以跳过前5分钟


我想用编程的方式来做这件事,但我不知道怎么做

免责声明:我以前从未使用过这个

但是,从中可以看出,您可以在视频中设置如下位置:

private void button1_Click(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.URL = @"C:BlaBla\Family Guy\Season 10\S10E16.HDTV.x264-LOL.avi";
    }
axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 300d;
(其中的值是您要导航到的视频开始的秒数-我已按要求将其设置为5分钟)

编辑:从下面的评论中-要快速前进,有一种方法可以帮您做到这一点。您可以先检查是否可以这样做,我为您修改了文档中的一个示例:

if (axWindowsMediaPlayer1.Ctlcontrols.get_isAvailable("fastForward"))
{
   axWindowsMediaPlayer1.Ctlcontrols.fastForward();
}

这会检查它是否可以快进,然后以5倍于正常速度播放,直到你告诉它做其他事情,或者我猜它会到达视频的结尾

免责声明:我以前从未使用过这个

但是,从中可以看出,您可以在视频中设置如下位置:

private void button1_Click(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.URL = @"C:BlaBla\Family Guy\Season 10\S10E16.HDTV.x264-LOL.avi";
    }
axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 300d;
(其中的值是您要导航到的视频开始的秒数-我已按要求将其设置为5分钟)

编辑:从下面的评论中-要快速前进,有一种方法可以帮您做到这一点。您可以先检查是否可以这样做,我为您修改了文档中的一个示例:

if (axWindowsMediaPlayer1.Ctlcontrols.get_isAvailable("fastForward"))
{
   axWindowsMediaPlayer1.Ctlcontrols.fastForward();
}

这会检查它是否可以快进,然后以5倍于正常速度播放,直到你告诉它做其他事情,或者我猜它会到达视频的结尾

就像您在COM上设置URL属性一样,您也必须在设置开始时间时执行相同的操作。如果有一个属性是问题,就像您在COM上设置URL属性一样,那么您必须在设置开始时间时执行相同的操作。如果问题是有属性的,我在你回答前几秒钟就发现了,但你是对的,它是有效的!除了,它是一个双精度单位,以毫秒为单位。所以:“axWindowsMediaPlayer1.Ctlcontrols.currentPosition=10.745329;”谢谢你。我知道这些函数,但它们只适用于我的.mp4文件,而不适用于.avi文件(如我所说,因为它们没有索引),但您可以这样做:“axWindowsMediaPlayer1.Ctlcontrols.currentPosition+=5.0;”并循环运行。谢谢你的帮助!事实上,在你回答之前几秒钟,我发现了这个,但你是对的,它起作用了!除了,它是一个双精度单位,以毫秒为单位。所以:“axWindowsMediaPlayer1.Ctlcontrols.currentPosition=10.745329;”谢谢你。我知道这些函数,但它们只适用于我的.mp4文件,而不适用于.avi文件(如我所说,因为它们没有索引),但您可以这样做:“axWindowsMediaPlayer1.Ctlcontrols.currentPosition+=5.0;”并循环运行。谢谢你的帮助!