Основа это компонент MediaPlayer в который еще до меня были добавлены некоторые методы и свойства. Так же внесены изменения и в файл Media.pas от которого зависит как MediaPlayerEx так и MediaPlayer (последний вроде не пострадал).
Не вдаваясь в подробности кто что менял, опишу что есть:
1. Добавилось событие doOpen и только оно открывает файл, а не как раньше doPlay. Но так же добавлено свойство AutoPlay (True/False) которое позволяет после открытия сразу начать воспроизведение.
2. Теперь не придется "таскать" с собой таймер чтоб отслеживать позицию проигрывания. Еще с давних времен в MediaPlayer имеется свой таймер который отслеживает onEndPlay (окончание проигрывание), пришлось научить этого лентяя выдавать и onPosition (позицию проигрывания). Выведено свойство Interval.
3. Добавились свойства StartPos и FinishPos определяющие начало и конец проигрывания. Можно проигрывать не весь файл, а только нужную чать.
4. Возможность изменения скорости проигрывания (как быстрей, так и медленнее).
5. Установка громкости.
6. Свойством Channels можно включитьотключить левый или правый канал.
7. Появилась возможность не только масштабировать видео (по центру, на весь экран), но и задать свой размер проигрывания видео (doSetDisplayRect). В простом примере Test02.pas (см. архив) на одном окне одновременно проигрывается 6 видео. В теории можно вывести видео на любое окно в нужной позиции.
8. Добавлено получение частоты кадров видео файла (FrameRate).
Окно с 6 видео
Вроде все работает, но тестировать нужно.
Скачать архив (обновлен 28.06.2020) с компонентом и примерами
(один пример тестирует все возможное, второй пример описан в пункте 7)
Если нет предыдущего MediaPlayerEx, то устанавливаем (ini файл перетащить на рабочее поле HiAsm) и в папку HiAsm (Elements\delphi\code) копируем Media.pas.
История
2020-06-28
-Исправлена ошибка отображения при изменении позиции, если при загрузке файла не было установлено свойство AutoPlay = True.
-При остановке (doStop) устанавливается в стартовую позицию.
-При Replay = True начинает проигрывать без необходимости отлавливания события onEndPlay.
2017-06-27
-Исправлена ошибка изменения свойства Interval.
-Изменена процедура получения данных FrameRate.
2017-02-24
-Добавлено получение частоты кадров FrameRate.
2015-06-27
-Выложен компонент.
Редактировалось 13 раз(а), последний 2020-06-28 18:36:05