axWindowsMediaPlayer1 - 如何使一帧向前,一帧向后?

时间:2014-08-21 07:23:12

标签: c# axwindowsmediaplayer

我想做的是以下内容:

  1. 当我对button1进行点击操作时,我想将我的“avi”向前移动一帧。
  2. 当我在按钮2上进行点击操作时,我想将我的“avi”向后移动一帧。
  3. 我这样解决了第一点:

    private void button2_Click(object sender, EventArgs e)
            {
               ((WMPLib.IWMPControls2)axWindowsMediaPlayer1.Ctlcontrols).step(1);
            }
    

    但我不知道如何解决第二点(向后帧),step(-1)不起作用。在这种情况下,我很乐意提供任何帮助。

2 个答案:

答案 0 :(得分:0)

Comment on MSDN about step method.

我似乎无法通过Microsoft解决此问题; - )

答案 1 :(得分:0)

我确实设法为仍在尝试这样做的人找到了解决此问题的方法。

要向前迈进,我们可以按预期使用 step(1) 命令。

要后退,我们将播放位置设置为从当前播放位置向后大约1帧,然后我们将前进一帧。方便的是,这实际上最终“着陆”在前一帧上。

Private Sub StepForward()
    wmp.Ctlcontrols.step(1)
End Sub

Private Sub StepBackward()
    wmp.Ctlcontrols.currentPosition -= (1 / wmp.network.encodedFrameRate)
    wmp.Ctlcontrols.step(1)
End Sub

诚然,这不是一个很好的方法,但它实际上似乎对 MP4 文件非常一致。我还没有尝试过使用其他文件格式,但我相信这种方法应该仍然有效。