0

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

4

2 回答 2

0

当然可以,虽然我不记得这些技术了。您可以通过多种方式很好地访问流中的数据,以重建音频和视频的各个帧。人们已经编写了系统,用户可以在其中键入精确的时间和帧数,然后视频播放器会跳转到该位置。

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

于 2009-07-16T16:43:19.573 回答
0

就像我在这里的同一个问题中解释的那样,您可以使用计时器来控制 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;
}
于 2014-09-24T05:56:00.620 回答