Новый вид mozilla vlc plugin

от автора

При реализации одного из проектов столкнулся с небольшой задачей, а именно встраивание на страницу сайта vlc плеера при этом плеер должен поддерживать возможность стилизации и воспроизведение рекламного ролика перед проигрыванием основного медиафайла или потока.
Так как ранее уже доводилось встраивать vlc на страницу сайта (воспроизведение с камер), сразу же отправился на страницу вики проекта vlc. Детальное изучение, которой показало, что стандартными методами это реализуемо, но готовых решений не представлено. Помня, что «лень двигатель прогресса» отправился в google искать варианты встраивания плеера. Потратив несколько часов, пришёл к выводу, что существующих реализаций совсем не много и большинстве своем берут начало от разработанного Julien Bouquillon плагина «VLCcontrols». Одна проблема данный плагин обновлялся последний раз в 2010 году.

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

Что необходимо было сделать

  • Разработать интерфейс плеера с возможность легко его изменить.
  • Реализовать базовых функций плеера (воспроизведение, стоп, пауза, регулирование звука, полноэкранный режим).
  • Написать функционал позволяющий показать рекламу, которая не блокировалась бы AdBlock.
  • Реализовать поддержку дополнительных методов, которые поддерживаются mozilla vlc plugin.
  • Максимально упростить интеграцию на страницу.
  • Поддержка различными браузерами.

Закончив с подготовительной работой, сперва решил все же переделать плагин «VLCcontrols». О том, что я глубоко ошибся в выборе, до меня дошло уже после переделки. Некоторые функции работали не так, как мне было нужно, ну а другие вообще переставали работать при вроде бы обычных действиях. Ну ладно, на ошибках учатся, буду писать все с нуля.
Сказано-сделано, первая версия была написана быстрее, чем переделывался плагин. Потом были еще версии, в которых добавлялись другие функции, но ломались уже реализованные. В конечном итоге появилась стабильная версия с поддержкой большинства функционала vlc plugina, заказчик принял работу, но добавил еще по реализации дополнительных функций.

Что же реализовано в данной обертке?
  • Автоматическое воспроизведение сразу после загрузки плагина.
  • Демонстрация рекламного ролика с возможностью настройки времени демонстрации(AdBlock не блокирует)
  • Возможность менять вид плеера изменив css файл.
  • Поддержка всех базовых функций плеера
  • Изменение соотношения сторон, чересстрочности, аудиоканалов
  • 2 вида полноэкранного режима (стандартный и через HTML5 Fullscreen API)
  • Включение режима, при котором на плеер, возможно, накладывать различные эффекты css
  • Воспроизведение видеофайла из куков или из указанного параметра

Работает все это очень просто.

Подключаем скрипт к сайту и просто вызываем плеер, передавая ему параметры:

hPlayer.init(); 

Приведу основной список параметров, которые воспринимает обертка:

wrapper — Принимает id DOM контейнера, в который необходимо загрузить плеер. * ID элемента — Плеер будет загружен в указанный DOM контейнер. * NULL(не задано значение) — Плеер будет загружен в контейнер по умолчанию(id=»hPlayer»).  mode — Указание какой из плагинов инициализировать для дальнейшего проигрывания контента. * http — загрузка vlc плагина. * NULL(не задано значение) — загрузка оболочки без инициализации плагина.  stream — Поток видео данных, который необходимо воспроизвести в плеере. * ‘Поток данных’ — после загрузки всех настроек и инициализации плеера будет запущено проигрывание указанного потока. * NULL(не задано значение) — загрузка оболочки и инициализация плагина.  windowless * true — включение облегченного режима воспроизведения плагином. Активирует возможности манипуляций с плагином средствами CSS. Не стабильная функция. При использовании переключение в полноэкранный режим реализовано при помощи Fullscreen API. * NULL(не задано значение) — наследование установленных ранее настроек (по умолчанию «false»).  ad_state * true — активирует показ рекламного видеоролика перед воспроизведением основного медиафайла. * NULL(не задано значение) — наследование установленных ранее настроек (по умолчанию «false»).  ad_link * ‘http://site.com/adsvideo.avi’ — ссылка на медиафайл который будет транслироваться при активации ad_state. * NULL(не задано значение) — наследование установленных ранее настроек (по умолчанию «пусто»).  ad_time * ‘время в миллисекундах’ — указание длительности показа рекламного медиафайла. * NULL(не задано значение) — наследование установленных ранее настроек (по умолчанию «10000 мс/10 секунд»). 
Примеры

Обычный запуск с передачей параметров.

hPlayer.init({             wrapper: 'hPlayer',             autoplay: true,             loop: true,             windowless: true,             stream: 'http://site.com.ua/mainvideo.avi',             mode: 'http' }); 

Воспроизведение рекламы перед проигрыванием основного файла.

hPlayer.init({             wrapper: 'hPlayer',             stream: 'http://site.com.ua/mainvideo.avi',             autoplay: true,             loop: true,             mode: 'http',             ad_state:true,             ad_link: 'http://site.com.ua/videofile.flv',             ad_time: 10000 }); 

Забрать и пользоваться можно на гитхабе: github.com/zpvs/hplayer

При разработке использованы материалы:
Плагин Julien Bouquillon VLCcontrols
Документация с wiki VideoLAN

ссылка на оригинал статьи http://habrahabr.ru/post/188232/


Комментарии

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

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