Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2016, 18:15   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Видео на Tpanel, масштабируемость

Всем привет, ребят, как сделать так, чтобы при просмотре видео больших разрешений через TMediaPlayer оно не выходило за рамки панели (точнее чтоб в нее умещалось).

Есть ли аналог Stretch, как у Timage?

И еще вопрос, возможно ли сделать так, чтоб выключить звук только у видео, не выключая системные звуки?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 05.05.2016, 19:01   #2
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Сам не проверял, но в одной умной книге сказано, что компонент MediaPlayer имеет недоступное в Object Inspector свойство DisplayRect типа TRect.
Пример:
Код:
MediaPlayer1.DisplayRect:=Rect(0,0,320,240)
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 07.05.2016, 16:23   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

В итоге правильно написал? ДУмаю, что нет, потому что не работает
Код:
MediaPlayer1.DeviceType:= dtAutoSelect;
MediaPlayer1.FileName := OpenDialog1.FileName;
mediaplayer1.DisplayRect:=Rect(0,0,0,0);
MediaPlayer1.Display:=panel1;
MediaPlayer1.Open;
MediaPlayer1.Play;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 07.05.2016, 17:25   #4
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Цитата:
Код:
mediaplayer1.DisplayRect:=Rect(0,0,0,0);
Шо символизируют эти четыре нуля?
Срочно читать:
http://www.delphibasics.ru/TRect.php
http://www.delphibasics.ru/Rect.php
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 07.05.2016, 17:30   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Rect(0,0,0,0);
Это по нашему
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.05.2016, 17:41   #6
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

указал, к примеру (0,0,60,40) - координаты верхнего и нижнего угла прямоугольника. А видео все равно показывается так, как и раньше. Стандартные видео - видео высокого расширения и не умещаются на панели.

Психанул, написал 0,0,0,0 - т.е. область == точка. Но все равно все без изменений. Может быть использовать не динамический mediaplayer, у которого родитель - Form1, а компонент кинуть...ну ничего и не изменится.
Код:
MediaPlayer1.DisplayRect:=Rect(Point(0,0),Point(40,60));
так же пробовал писать с функциями point, в качестве аргументов функции rect, ничего не вышло
from dark to light)

Последний раз редактировалось Алексей_2012; 07.05.2016 в 17:45.
Алексей_2012 вне форума Ответить с цитированием
Старый 07.05.2016, 17:48   #7
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

TMediaPlayer брось бяку.
Она толком не работала. По поводу маштабирования както я его включал, но как не помню было это 15 лет назад. Зато помню что работало не на всех видео файлах.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.05.2016, 18:11   #8
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Проверил. Вот масштабируется:

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.DeviceType:= dtAutoSelect;
MediaPlayer1.FileName := 'D:\films\Nochnoi.narod.avi';
MediaPlayer1.Open;
mediaplayer1.DisplayRect:=panel1.ClientRect;
MediaPlayer1.Display:=panel1;
end;
Правда не решает других глюков.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 07.05.2016, 18:14   #9
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

ВотЪ.



Основные моменты:
Код:
//Создание формы
procedure TForm2.FormCreate(Sender: TObject);
const
  //Название видеофайла
  FILE_NAME = 'Globe.avi';
begin
  MediaPlayer1.FileName:=ExtractFilePath(Application.ExeName)+FILE_NAME;
  MediaPlayer1.DisplayRect:=Rect(0, 0, Panel1.Width, Panel1.Height);
  MediaPlayer1.Open;
end;

//Изменение размеров формы
procedure TForm2.FormResize(Sender: TObject);
begin
  //Перезадаем размеры вывода видео
  MediaPlayer1.DisplayRect:=Rect(0, 0, Panel1.Width, Panel1.Height);
end;
Программирую по необходимости

Последний раз редактировалось tsar_; 07.05.2016 в 18:17.
tsar_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите простое облачное NoSQL-хранилище по критериям 1.Легкость, 2.Масштабируемость, 3.Надёжность Max Brown PHP 0 29.11.2015 20:03
TPanel OmegaBerkut Общие вопросы Delphi 1 22.05.2013 18:01
Масштабируемость страниц Vitalik85 HTML и CSS 2 01.08.2012 20:37
Масштабируемость в wpf дождинка Помощь студентам 0 16.07.2012 13:56
TPanel Valera Помощь студентам 10 07.08.2008 11:15