Создание простейшего видеоплеера на основе проигрывателя VideoLAN с использованием набора компонентов PasLibVlc

В статье «Воспроизведение видео в Delphi» была упомянута возможность написания проигрывателя для видео с использованием VLC SDK. В том числе с использованием набора компонентов PasLibVlc.

Эти компоненты значительно упрощают работу с VLC SDK, так как весь низкоуровневый функционал (включая импорт функций VLC API) в них уже реализован и разработчику при написании программ предоставляется достаточно простой удобный интерфейс.

Рассмотрим работу с ними на примере простейшего проигрывателя, который обладает следующими возможностями:

  • Воспроизведение видео;
  • Постановка воспроизведения на паузу;
  • Остановка воспроизведения видео;
  • Регулировка громкости воспроизведения.

Безусловно, перечисленный набор функций более чем скромный, но для изучения основ работы с PasLibVlc и самостоятельного написания не очень сложных программ для воспроизведения видео этого вполне достаточно.

Набор PasLibVlc включает всего 2 компонента:

  • TPasLibVlcPlayer – собственно он и отвечает за воспроизведение;
  • TPasLibVlcMediaList – список воспроизведения.

Для реализации вышеуказанного функционала будет вполне достаточно TPasLibVlcPlayer.

После установки PasLibVlc в панели компонентов появится соответствующая группа.

Компоненты PasVlcLib

Подготовка прототипа программы

Поместим компонент TPasLibVlcPlayer на форму. На эту же форму поместим 5 компонентов TButton, с помощью которых будет осуществляться воспроизведение, постановку на паузу, остановку воспроизведения и регулирование громкости. В результате получаем вот такую форму:

Плеер PasVlcLib

У компонента TPasLibVlcPlayer есть свойство AudioOutput. Оно предназначено указания технологии, которая будет использоваться для воспроизведения звука из видеофайла. Доступно 3 варианта:

  • aoDefault – то, что используется в системе по умолчанию;
  • aoDirectX – для воспроизведения звука используется DirectX;
  • aoWaveOut – для воспроизведения звука используются стандартные средства операционной системы.

К сожалению, регулирование громкости в VLC SDK корректно работает, только если свойство AudioOutput имеет значение aoWaveOut (по крайней мере, в Windows 7 x64). Поэтому, сразу устанавливаем для него это значение.

На этом подготовительный этап завершён. Перед следующими этапами необходимо сохранить и скомпилировать проект (зачем это нужно будет пояснено ниже).

Подключение VLC SDK

VLC SDK представляет собой набор библиотек, в которых реализованы средства для воспроизведения аудио и видео файлов. Какие именно файлы и папки входят в его состав показано на скриншоте ниже.

VLC SDK

Если не получилось скачать VLC SDK «в чистом виде», то можно также скачать zip или 7z архив с portable версией проигрывателя VideoLAN и извлечь всё это оттуда.

Для удобства поместим файлы VLC SDK в отдельную папку (назовём её, например, «VLC»). А, саму папку скопируем в ту папку, где находится ранее скомпилированный файл. Собственно для этого на предыдущем этапе и выполнялась компиляция.

Теперь можно приступить непосредственно к подключению VLC SDK к программе. Подключение будет выполняться при запуске программы. Поэтому, создадим для формы проигрывателя обработчик события OnCreate и в нём пропишем путь к папке с VLC SDK. Так как папка с VLC SDK находится в той же папке, что и программа, реализация будет предельно простой.

Реализация функционала проигрывателя

Весь функционал для воспроизведения и регулирования громкости реализуется средствами компонента TPasLibVlcPlayer.

Для воспроизведения используется метод Play, который принимает в качестве параметра путь к воспроизводимому файлу.

Поместим файл, который будет воспроизводить проигрыватель в туже папку, где он находится. Тогда для воспроизведения будет вполне достаточно следующего кода:

Постановка на паузу и остановка воспроизведения реализуются ещё проще.

Регулировка громкости требует несколько более сложного подхода. Перед тем как увеличить или уменьшить громкость требуется определить её текущее значение.

В PasLibVlc уровень громкости определяется целым числом (Integer) в диапазоне от 0 (0%) до 200 (100%). По умолчанию установлено 100 (50%).

К счастью, в PasLibVlc уже реализован механизм контроля значения уровня громкости. Поэтому, перед её увеличением или уменьшением не требуется проверка на предмет выхода за пределы диапазона допустимых значений.

Для определения текущего уровня громкости служит метод GetAudioVolume, который возвращает значение уровня громкости в виде целого числа типа Integer. В свою очередь, для установки уровня громкости предназначен метод SetAudioVolume, который принимает в качестве параметра уровень громкости, который необходимо установить.

Использование обоих методов легко можно объединить в одной строке кода. В качестве примера, при нажатии на соответствующую кнопку громкость будет увеличиваться или уменьшаться на 10.

Далее остаётся только скомпилировать готовую программу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *