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

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

Картинка по пропорциям [D5, D6, WinME, Win2k, WinXP]


DDDeN ©   (2004-08-02 18:35:00) 

Я воспроизвожу авишку при помощи TMediaPlayer. Как при изменении размеров формы пропорционально менять размеры картинки?


DDDeN   (2004-08-05 04:22:00) [1]

Да хочется мне чтоб при воспроизведении кинушки и при растягивании формы сама кинушка меняла размеры относительно своим изначальным размерам. Например в МедиаПлеере есть св-во Дисплей (простите на инглиш влом переключиться), на которое и выводится вся ета беда.


NailMan   (2004-08-04 12:52:00) [2]

Мой класс-медиаплеер с очень простым исполнением(для ознакомления есть пример) и возможностями:
http://nailman.cyborghome.ru/zakroma/sources/nm_play_class.zip

Заголовки DirectX 8.1 для Delphi:
http://nailman.cyborghome.ru/zakroma/archives/d3d81.exe

Если хочешь под DX9 то сливай заголовки с clootie.narod.ru

---
WBR, NailMan aka 2:5020/3337.13


Ricks   (2004-08-04 10:47:00) [3]

Про DirectShow лучше почитай на MSDN или поищи примеры. Там пока сам не разберешься - ничего не выйдет!
А что тебе насчет MediaPlayer'а помочь?


DDDeN   (2004-08-03 18:48:00) [4]

Хм-Хм...
Не очень понятно...
Я в ДиректШоу ни бум-бум... А можно парой строк пояснить суть, а откуда сам поток идет, и как его открыть-то???
Ну если все это долго и сложно, помогите хоть с МедиаПлеером! Ну если не влом, объясните про этот ДиректШоу ;-)


DDDeN   (2004-08-03 18:44:00) [5]

Спасибочки!!!


Ricks   (2004-08-03 15:17:00) [6]


procedure TAP7MainForm.VideoWindowResize(Sender: TObject);
var pW, pH, vW, vH, X, Y : Integer;
   S                    : Single;
begin
if not Player.Video.Exists then Exit;

pW:=VideoWindow.Width;
pH:=VideoWindow.Height;
vW:=Player.Video.Width;
vH:=Player.Video.Height;

if FitVideo then begin
 if SmartFit then begin
  if (vW >= pW) or (vH >= pH) then begin
   S:=pW / vW;
   if vH * S > VideoWindow.Height  then S:=pH / vH;
   vW:=Round(vW * S);
   vH:=Round(vH * S);
  end;
 end else begin
  S:=pW / vW;
  if vH * S > VideoWindow.Height  then S:=pH / vH;
  vW:=Round(vW * S);
  vH:=Round(vH * S);
 end;
end;

X:=pW div 2 - vW div 2;
Y:=pH div 2 - vH div 2;
Player.VideoPosition:=Rect(X, Y, vW, vH);
Player.VideoOwner:=VideoWindow;
end;


Это кусочек моей программы. Она правда написана на DirectShow, но, я думаю, разобраться можно, а тем более, я надеюсь, я подсказал тебе идею :)


NailMan   (2004-08-03 11:54:00) [7]

Ну не знаю как во всяких там супер-классах-медиаплеерах, но в чистом DirectShow, это делается довольно просто.

---
WBR, NailMan aka 2:5020/3337.13


DDDeN   (2004-08-03 03:37:00) [8]

Подскажите хоть идею...


Наверх

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