我正在Delphi XE3中使用ActiveX Windows Media Player。是否可以单步浏览视频中的帧?根据MS文档,有一个Step()函数:https://docs.microsoft.com/en-us/windows/win32/wmp/controls-step但是该功能似乎在Delphi IDE中不存在。当我键入媒体控件时:WMPlayer1。IDE会显示可能的成员列表,但Step()在层次结构中不存在。
在生成的WMPLib_TLB.pas文件中,WMPlayer1.controls被声明为IWMPControls接口。但是,Step方法不在IWMPControls中,而在IWMPControls2中。只需进行类型转换即可:
procedure TForm1.Button1Click(Sender: TObject);
var
IWMPC2:IWMPControls2;
begin
//WMPlayer1.controls.pause; (Pause first)
IWMPC2 := IWMPControls2(WMPlayer1.controls);
IWMPC2.step(1);
end;