使用Windows Media Player SDK在特定位置停止视频

时间:2009-07-16 16:12:36

标签: c# video sdk position windows-media-player

有没有办法使用Windows Media Player SDK在特定位置停止视频?我正在使用C#嵌入播放器并尝试查看IWMPControls3接口在位置或时间方面是否具有任何特定点的停止功能。如果可以,那该怎么办?

2 个答案:

答案 0 :(得分:1)

当然可以做到,但我不再记得这些技巧。有一些方法可以很好地访问流中的数据,以重建音频和单个视频帧。人们已经编写了系统,用户可以在其中输入精确的时间和帧数,视频播放器会跳转到该位置。

由于您的问题是“有办法”,答案是“是”。但是,我不记得有足够的具体细节告诉你如何去做。

答案 1 :(得分:0)

就像我在same question here中解释的那样,您可以使用计时器来控制CurrentPosition:

private Timer tmrWmpPlayerPosition;
private TimeSpan StopPosition;

private void btn_Click(object sender, EventArgs e)
{
    wmpPlayer.Ctlcontrols.currentPosition = 4;
    StopPosition=TimeSpan.Parse("00:20:20");
    StopWmpPlayerTimer();
    StartWmpPlayerTimer();
}

private void tmrWmpPlayerPosition_Tick(object sender, EventArgs e)
{
    if ((Convert.ToInt32(StopPosition.TotalSeconds) != Convert.ToInt32(wmpPlayer.Ctlcontrols.currentPosition))) return;
    wmpPlayer.Ctlcontrols.pause();
    StopWmpPlayerTimer();
}

private void StartWmpPlayerTimer()
{
    tmrWmpPlayerPosition = new Timer();
    tmrWmpPlayerPosition.Tick += new EventHandler(tmrWmpPlayerPosition_Tick);
    tmrWmpPlayerPosition.Enabled = true;
    tmrWmpPlayerPosition.Interval = 1000;
    tmrWmpPlayerPosition.Start();
}

private void StopWmpPlayerTimer()
{
    if (tmrWmpPlayerPosition != null)
        tmrWmpPlayerPosition.Dispose();
    tmrWmpPlayerPosition = null;
}