Спасибо, получилось! Сравнил с информацией о файле в VirtualDub - количество кадров совпадает. На HD Video, где по 50-60 fps еще не проверял.
Цитата (xaramamburu)
pDuration количество секунд в фильме
А я всё думал, в чем же измеряется это значение Кстати, оно идентично TDateTime. Получается, если я сделаю так: pCurrent := 123;, то попаду на таймкод 2:03? Всё так просто? не верю
Цитата (xaramamburu)
Да, есть еще интерфейс IMediaSeeking предназначенный для управления позиционированием в потоке, в нем намного больше возможностей чем в IMediaPosition
Спасибо. Будет скучно - посмотрю Задача пока решена.
Добавлено (31.07.2013, 11:55)
---------------------------------------------
Кстати, вот так можно прыгнуть на нужный кадр:
Код
function GetFramePosition(iFrame : Int64): Double;
begin
Result := 0;
if MediaInfo.VideoFPS<=0 then //количество FPS в видео
Exit;
if iFrame<=0 then
iFrame := 1;
Result := (1 / MediaInfo.VideoFPS) * iFrame;
end;
Procedure Knopka;
var
pCurrent : double; //текущая позиция
newFrame : int64; //номер кадра, на который будем прыгать
begin
newFrame := 666;
pCurrent := GetFramePosition(newFrame);
pMediaPosition.put_CurrentPosition(pCurrent);
end;
Только, почему-то, не получается прыгнуть на последние несколько кадров.