Dspack开发视频播放,怎样从指定的时间开始播放,如:从0:02:35开始播放。谢谢!

解决方案 »

  1.   

    Procedure TForm1.Button1Click(Sender: TObject);
    Var
      testTime: integer;
      CurrPos, StopPos,currTimePoint: Int64;
      MediaSeeking: IMediaSeeking;
    Begin  If self.Edit1.Text <> '' Then
        FilterGraph1.QueryInterface(IMediaSeeking, MediaSeeking);
      With MediaSeeking Do
        Begin
          testTime := 0;
          testTime := Timepointtoint(self.Edit1.Text);
          GetStopPosition(StopPos);
          GetCurrentPosition(CurrPos);
          CurrPos := testTime * 100000;
          SetPositions(CurrPos, AM_SEEKING_AbsolutePositioning,
            StopPos, AM_SEEKING_NoPositioning);
        End;
      currTimePoint := CurrPos;
    End;
      

  2.   


    刚才忘了给你一个函数 这是把你所说的00:00:00转换成int格式Function Tform1.TimePointToInt(TimeStr: String): Int64;
    Var
      M, S, MS: Integer;
    Begin
      TimeStr := Trim(TimeStr);
      If (TimeStr = '') Or (TimeStr = '[ ]') Then
        Begin
          Result := MaxLongInt;
          Exit;
        End;
      TimeStr := StringReplace(TimeStr, '[', '', []);
      TimeStr := StringReplace(TimeStr, ']', '', []);
      Try
        M := StrToInt(Copy(TimeStr, 1, 2));
        S := StrToInt(Copy(TimeStr, 4, 2));
        MS := StrToInt(Copy(TimeStr, 7, 2));
        Result := MS + (M * 60 + s) * 100;
      Except
        Result := MaxLongInt;
      End;
    End;