Диванная автоматизация видеоплеера VLC

vlc_cat

Давным давно сделал себе пульт управления проигрыванием видео в виде приложения для мобильного телефона. Ведь это так приятно — лёжа на диване, прибавлять звук на компьютере или ставить фильм на паузу. Приложение было написано в режиме классического ночного безумия одним набегом.

Я пользуюсь дома замечательным видеоплеером VLC, чего и вам советую. Он отлично подходит для удалённого управления, поскольку имеет встроенный веб-интерфейс.

Приложение на GitHub diy-remote

Релизы брать тут: https://github.com/jreznot/diy-remote/releases

Для работы вам потребуется:

  • Wi-Fi сеть
  • Запущенный сервер на вашем компьютере
  • Настроенный веб-интерфейс в VLC
  • Android приложение на телефоне

Пробуем

Запуск сервера:

  • Распаковываем скрипты в каталог ~/.diy-remote/scripts
  • Запускаем приложение > diy-remote -port 9595

Находим приложение на телефоне:

icon
  1. Вводим адрес компьютера в сети и порт сервера
  2. На главном окне тыкаем кнопку подключения
  3. Видим наши долгожданные кнопочки пульта
prefs main remote

Технологии

Внутри такой клубок технологий:

  • Java — основной код проекта
  • Spring Web MVC — сервис с общением в виде JSON
  • Jetty — встроенный веб-сервер
  • Groovy — скрипты действий
  • Android — приложение на Java для телефона

Удалённое управление я постарался реализовать универсально, без специфики управления видеоплеером. Сервер удалённого управления выполняет команды от клиента при помощи скриптов на Groovy, в которых и реализована логика. В итоге у меня получился набор скриптов для управления VLC и пара скриптов для ОС Windows, например: выключение компьютера.

Приложение будет полезно также тем, кто интересуется Java и Spring, его можно использовать в качестве заготовки или прототипа. Приятная особенность: можно запускать отладку всего приложения прямо из IDE, поскольку Jetty встроен и не требует деплоймента. Достаточно запустить Main класс как обычное Java приложение!

Про встраивание Jetty можно прочитать тут: https://strangeway.org/?p=848

Подборка действий веб-интерфейса VLC:

play / pause /requests/status.xml?command=pl_pause
next /requests/status.xml?command=pl_next
previous /requests/status.xml?command=pl_previous
status /requests/status.xml
stop /requests/status.xml?command=pl_stop
volume /requests/status.xml?command=volume&val=${volumeValue}
fullscreen /requests/status.xml?command=fullscreen
Yuriy Artamonov on GithubYuriy Artamonov on LinkedinYuriy Artamonov on Twitter
Yuriy Artamonov
Software Developer
До последнего времени Юрий принимал активное участие в разработке опенсорс-фреймворка CUBA Platform, специализируясь на архитектуре и фронтенд-технологиях. Преподавал в Самарском университете разработку приложений для мобильных устройств, основы UI/UX и менторил студентов.

В настоящее время работает в компании JetBrains в команде IntelliJ IDEA Ultimate. Когда выдаётся свободное время, пишет статьи и контрибьютит в проекты с открытым исходным кодом. Обожает реализовывать странные идеи с лозунгом: «А почему бы и нет?».