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

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

Просмотр видео с помощью TMediaPLayer [D5, Win95/98]


ilg ©   (2002-01-02 13:32:00) 

Ситуация следующая:
Если в свойстве MediaPlayer.Display указан компонент, размеры которого меньше размеров видеоизображения, то при просмотре отображается только то, что поместилось. Как сделать, чтобы было видно всё, т. е. масштабировать видео (что-то типа Zoom в Виндовом Медиаплейере).
P. S.: Кстати, как узнать разрешение видеоролика (длина Xширина).


Гриф   (2002-01-04 12:21:00) [1]

> ilg © (02.01.02 13:32)
> P. S.: Кстати, как узнать разрешение видеоролика (длинаXширина).

Видеоролик - понятие растяжимое :-)
С avi могу помочь. Есть вопросы - мыль.


3d[Power]   (2002-01-04 00:06:00) [2]

Вот пожалуй самая рульная процедура (сам писал), растягивает и сжимает мувик даже если изменяешь display не пропорционально, в общем как в медиа плеере.

procedure LOADVIDEO(Filename : string; St : integer);
var x,y : currency;
maxx,maxy : currency;
yp, xp : currency;
xx,yy : integer;
topx,topy,pos,i : integer;
begin
with form1 do begin
x := mediaplayer1.displayrect.Right;
y := mediaplayer1.displayrect.Bottom;
maxx := panel1.Width;
maxy := panel1.height;

if (x < maxx) then begin
xp := maxx/x;
x := maxx;
y := y*xp;
if y > maxy then begin
// percent y over maxy.
yp := maxy/y;
y := maxy;
// decreace x;
x := x*yp;
end;
end;
if (y < maxy) then begin
yp := maxy/y;
y := maxy;
x := x*yp;
if x > maxx then begin
// percent y over maxy.
xp := maxx/x;
x := maxx;
// decreace x;
y := y*xp;
end;
end;
xx := round(x);
yy := round(y);
topx := (panel1.width - xx) div 2;
topy := (panel1.height - yy) div 2;

// чтобы не слетел displayrect надо его постоянно указывать заново (при растягивании) суть данного глюка медиа плеера мной так и не была выяснена.
mediaplayer1.displayrect := rect(topx,topy,xx,yy);
mediaplayer1.Play;
end;
end;


Наверх

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