Конференция "Media" » Изменение скорости воспроизведения видео [D7, WinXP]
 
  • Sergey (13.04.08 15:16) [0]
    Не подскажите, как сделать ползунок, при перемещении которого изменялась бы скорость воспроизведения видео-файла?
  • AbrosimovA (14.04.08 16:07) [1]
    Для изменения скорости воспроизведения DVD используется IDVDControl2:



    procedure PlaySpeedDVD(Speed: double; Direction: integer);
    var
     DvdControl2: IDVDControl2;
     DvdCmd: IDVDCmd;
    begin
    if Succeeded(FilterGraph.QueryInterface(IDVDControl2, DVDControl2)) then
     begin
       case Direction of
         0: DvdControl2.PlayForwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
         1: DvdControl2PlayBackwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
       end;
       DvdControl2 := nil;
       DvdCmd := nil;
     end;
    end;

    PlaySpeedDVD(3.0, 0); // Перемотка вперёд (скорость 3х)
    PlaySpeedDVD(2.0, 1); // Перемотка назад (скорость 2х)



    Для изменения скорости воспроизведения файла используется IMediaSeeking:



    procedure PlaySpeedFile(Speed: double);
    var MediaSeeking: IMediaSeeking;
    begin
     if Succeeded(FilterGraph.QueryInterface(IMediaSeeking, MediaSeeking)) then
     begin
       MediaSeeking.SetRate(Speed);
       MediaSeeking := nil;
     end;
    end;

    procedure PlaySpeedDVD(Speed: double; Direction: integer);
    var
     DvdControl2: IDVDControl2;
     DvdCmd: IDVDCmd;
    begin
    if Succeeded(FilterGraph.QueryInterface(IDVDControl2, DVDControl2)) then
     begin
       case Direction of
         0: DvdControl2.PlayForwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
         1: DvdControl2PlayBackwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
       end;
       DvdControl2 := nil;
       DvdCmd := nil;
     end;
    end;

    PlaySpeedFile(3.0); // Перемотка вперёд (скорость 3х)


  • AbrosimovA (14.04.08 16:09) [2]
    Для изменения скорости воспроизведения DVD используется IDVDControl2:



    procedure PlaySpeedDVD(Speed: double; Direction: integer);
    var
     DvdControl2: IDVDControl2;
     DvdCmd: IDVDCmd;
    begin
    if Succeeded(FilterGraph.QueryInterface(IDVDControl2, DVDControl2)) then
     begin
       case Direction of
         0: DvdControl2.PlayForwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
         1: DvdControl2PlayBackwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
       end;
       DvdControl2 := nil;
       DvdCmd := nil;
     end;
    end;

    PlaySpeedDVD(3.0, 0); // Перемотка вперёд (скорость 3х)
    PlaySpeedDVD(2.0, 1); // Перемотка назад (скорость 2х)



    Для изменения скорости воспроизведения файла используется IMediaSeeking:



    procedure PlaySpeedFile(Speed: double);
    var MediaSeeking: IMediaSeeking;
    begin
     if Succeeded(FilterGraph.QueryInterface(IMediaSeeking, MediaSeeking)) then
     begin
       MediaSeeking.SetRate(Speed);
       MediaSeeking := nil;
     end;
    end;

    procedure PlaySpeedDVD(Speed: double; Direction: integer);
    var
     DvdControl2: IDVDControl2;
     DvdCmd: IDVDCmd;
    begin
    if Succeeded(FilterGraph.QueryInterface(IDVDControl2, DVDControl2)) then
     begin
       case Direction of
         0: DvdControl2.PlayForwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
         1: DvdControl2PlayBackwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
       end;
       DvdControl2 := nil;
       DvdCmd := nil;
     end;
    end;

    PlaySpeedFile(3.0); // Перемотка вперёд (скорость 3х)


  • GladiatorX © (14.04.08 16:12) [3]
    Для изменения скорости воспроизведения DVD используется IDVDControl2:



    procedure PlaySpeedDVD(Speed: double; Direction: integer);
    var
     DvdControl2: IDVDControl2;
     DvdCmd: IDVDCmd;
    begin
    if Succeeded(FilterGraph.QueryInterface(IDVDControl2, DVDControl2)) then
     begin
       case Direction of
         0: DvdControl2.PlayForwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
         1: DvdControl2PlayBackwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
       end;
       DvdControl2 := nil;
       DvdCmd := nil;
     end;
    end;

    PlaySpeedDVD(3.0, 0); // Перемотка вперёд (скорость 3х)
    PlaySpeedDVD(2.0, 1); // Перемотка назад (скорость 2х)



    Для изменения скорости воспроизведения файла используется IMediaSeeking:



    procedure PlaySpeedFile(Speed: double);
    var MediaSeeking: IMediaSeeking;
    begin
     if Succeeded(FilterGraph.QueryInterface(IMediaSeeking, MediaSeeking)) then
     begin
       MediaSeeking.SetRate(Speed);
       MediaSeeking := nil;
     end;
    end;

    procedure PlaySpeedDVD(Speed: double; Direction: integer);
    var
     DvdControl2: IDVDControl2;
     DvdCmd: IDVDCmd;
    begin
    if Succeeded(FilterGraph.QueryInterface(IDVDControl2, DVDControl2)) then
     begin
       case Direction of
         0: DvdControl2.PlayForwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
         1: DvdControl2PlayBackwards(Speed, DVD_CMD_FLAG_Flush, DvdCmd);
       end;
       DvdControl2 := nil;
       DvdCmd := nil;
     end;
    end;

    PlaySpeedFile(3.0); // Перемотка вперёд (скорость 3х)


 
Конференция "Media" » Изменение скорости воспроизведения видео [D7, WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0.006]