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