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