Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Воспроизведения фильма с произвольного места DSPack. [D7, WinXP]


Artin ©   (2004-09-03 20:07:00) 

Здравствуйте.
Я пишу на Дельфи 7 свой видео проигрыватель.
Использую для этого DSPpack. Я всё сделал что хотел кроме одного. Не могу заставить воспроизводиться с какого либо момента.
Тоесть у меня ролик на 60 сек а я хочу чтобы воспроизведение начиналось например с 30. Я искал и нарыл команду SetPosition. Но вот беда работает как то глючно не с первого раза короче не работает. Может вы знаете как это сделать правильно?


programania   (2004-09-13 16:22:00) [1]

Установка позиции фильма который запущен при помощи DSPack
работает всегда в programania.com/ENJOL.ZIP

PROCEDURE PosAvi(pos:integer);
var
CurrPos,stopPos : Int64;
MediaSeeking: IMediaSeeking;
hms:TDVDHMSFTimeCode;
DvdControl:IDvdControl2;
i:integer;
begin
with form1.FilterGraph1 do begin
 if dvd then begin
//Это для DVD из IFO или VOB pos=милиСекунды
   i:=pos div 1000;
   hms.bHours:=i div 3600;
   hms.bMinutes:=(i-hms.bHours*3600)div 60;
   hms.bSeconds:= i-hms.bHours*3600-hms.bMinutes*60;
   QueryInterface(IDvdControl2, DvdControl);
   DvdControl.PlayAtTime(@hms,DVD_CMD_FLAG_None, DvdCmd);
   DvdControl := nil;
 end
 else begin
//Это для Avi pos=позиция trackbar1
   QueryInterface(IMediaSeeking, MediaSeeking);
   with MediaSeeking do Begin
     GetStopPosition(stopPos);
     CurrPos:=stopPos*pos div (trackBar1.max);
     SetPositions(currPos,AM_SEEKING_AbsolutePositioning,stopPos,AM_SEEKING_NoPositioning);
   end;
 end;
end
end;

еще проверьте: может вызывается многократно и одновременно
такое в windows может бывыет и выглядит как непредсказуемые глюки,
еще важно откуда вызывать: лучше из timer чтоб один раз
если что непонятно напишите mail@programania.com


Artin   (2004-09-03 20:11:00) [2]

См.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1091714055&n=7
Модератор убей этот пост и будеш прав.
Извиняюсь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо