• 0
Авторизация  
Yarpda

Узнать отображаемый размер видео на контроле Mediaplayer

Вопросы

Вопрос такой: Есть видео, которое проигрывается, оно может быть разных размеров (3:4, 16:9  и т.д.). Контрол на котором воспроизводится видео изначально фиксированного размера. От этого получается в  одних видео обрезки по краям, что не очень красиво. Хотелось бы сделать так чтобы контрол сам менял свои размеры (по вертикали) в зависимости от того какого формата кадра видео воспроизводится.Для этого нужно знать какую реальную область на контроле занимает сам "квадрат" видео. . Есть идеи как это можно сделать?

Delphi 10.1

Изменено пользователем Yarpda

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

  • 0

В копилку знаний. Напишу как решил задачу. Может кому-то будет интересно.

Таких как мне надо параметров у  MediaPlayer'a конечно нет. Но есть свойство VideoSize.X и Y там можно посмотреть реальный размер воспроизводимого видео в пикселях. 

Берем эти значения, делим высоту на ширину и выясняем астект (соотношение сторон). После чего берем ширину контейнера в котором отображает видео на форме и умножаем на этот аспект. Получаем нужную высоту контейнера. В итоге если у вас контейнер видео с привязкой Top, Bottom то его размер всегда будет пропорционально равным размеру проигрываемого видео-файла, что избавит от ненужный черных рамок.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу