【问题标题】:DsPack Stop PositionDsPack 停止位置
【发布时间】:2014-02-21 18:03:02
【问题描述】:

我需要通过 DsPack 从 StartPosition 到 EndPosition 播放一些视频。我编写了一段简单的代码,可以指定 StartPosition:

  FilterGraph1.Active := true;
  VideoWindow1.FilterGraph:= FilterGraph1;
  FilterGraph1.RenderFile('C:\Users\idsa\Documents\ENGLISH_2\ENGLISH_2\0001\0.avi');
  FilterGraph1.Position := 10000;
  FilterGraph1.Play;

但是如何指定 StopPosition?

【问题讨论】:

  • 类似(FilterGraph as IMediaSeeking).SetPositions(..., Stop, AM_ABSOLUTE)

标签: delphi dspack


【解决方案1】:

感谢 FreeConsulting 的提示。这是最终的代码。

uses DirectShow9;

...

procedure TForm1.FormShow(Sender: TObject);
var
  MediaSeeking: IMediaSeeking;
  Start: Int64;
  Stop: Int64;
begin
  FilterGraph1.Active := true;
  VideoWindow1.FilterGraph:= FilterGraph1;
  FilterGraph1.RenderFile('fileName');
  FilterGraph1.QueryInterface(IMediaSeeking, MediaSeeking);

  Start := 0;
  Stop := 10 * 10000000;

  MediaSeeking.SetPositions(Start, AM_SEEKING_AbsolutePositioning, Stop, AM_SEEKING_AbsolutePositioning);

  FilterGraph1.Play;
end;

【讨论】:

  • 好的,但你为什么放弃as 运算符?简洁明了,做你想做的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 2023-03-10
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多