![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Просмотр видео с помощью 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;