XBMC

Немного о том как

Управлять XBMC с помощью JSON-RPC API/v6

XBMC software - свободно распространяемый кроссплатформенный медиацентр, который можно установить практически на любую операционную систему (Android, Linux, Windows и т.д.). XBMC поддерживает как стандартное управление - с помощью компьютерной мыши, так и с помощью разнообразных пультов. Но самое главное, что нам и нужно у него есть API - и соответственно возможность управлять медиацентром через HTTP запросы, причем для того чтобы протестировать данный способ управления, не нужно бежать в магазин и покупать какие либо девайсы или устанавливать какой либо софт, а достаточно открыть интернет браузер и набрать в адресной строке запрос с определенным набором команд. А теперь обо всем по порядку. Первым делом необходимо установить XBMC. Как это сделать я описывать здесь не буду так как, во первых у каждого свои предпочтения в плане использования операционных систем, а во вторых в интернете масса мануалов по установке XBMC. Я например вообще установил XBMC в составе kodibuntu, так как мне нужен был ноутбук только в качестве медиацентра. После установки XBMC нужно произвести его небольшую настройку. Запускаем программу и нажимаем СИСТЕМА - Настройки - Службы далее Веб-сервер, здесь выбираем пункт Разрешить управление Kodi по HTTP (Kodi - новое название проекта XBMC), порт можно оставить по умолчанию - 8080, далее идут Логин и Пароль по умолчанию - kodi kodi, можете поменять на свои. Для тестирования нам понадобится так же IP адрес медиацентра его можно посмотреть перейдя в меню СИСТЕМА - Сведения о системе. И так у нас есть все необходимые настройки и практически все данные (IP-адрес, логин, пароль), теперь мы можем протестировать возможности API. Начнем с самого интересного - запустим например трансляцию online радио.

Для этого нам нужна будет ссылка на аудио поток, коих в интернете можно найти великое множество, на момент написания статьи, я нашел например такую: http://cast.radiogroup.com.ua:8000/avtoradio Теперь у нас есть все, начнем: открываем браузер и в адресной строке пишем

http://логин:пароль@ip-адрес:8080/jsonrpc?request={"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"http://cast.radiogroup.com.ua:8000/avtoradio"}}}

у меня это выглядит так.

Если все сделали правильно, то в окне браузера вы, увидите следующее: {"id":"1","jsonrpc":"2.0","result":"OK"} , а в XBMC запустится online радио. Если что то пошло не так, внимательно проверьте ссылку, на предмет лишних пробелов и кавычек с запятыми. Теперь немного разберем наш запрос:

  • id - здесь указывается id пользователя в виде произвольного числа или текста
  • method - тут я думаю все понятно Плеер.Открыть
  • file - здесь может быть любая прямая ссылка на аудио, видео или фото.
  • Вот ещё немного вкусного http://логин:пароль@ip-адрес:8080/jsonrpc?request=:

  • {"jsonrpc":"2.0","id":"1","method":"Application.SetVolume","params":{"volume":10}} - Установить уровень громкости 10.
  • {"jsonrpc":"2.0","method":"Player.Seek","params":{"playerid":0,"value":30},"id":"1"} - Установить позицию плеера на 30 процентов. Обратите внимание на то, что здесь и далее "playerid":0 - аудио "playerid":1 - видео "playerid":2 - фото
  • {"jsonrpc":"2.0","id":"1","method":"Player.PlayPause","params":{"playerid":0}} - PLAY / PAUSE
  • {"jsonrpc":"2.0","id":"1","method":"Player.GoTo","params":{"playerid":0,"to":"next"}} - Следующая композиция в плейлисте.
  • {"jsonrpc":"2.0","id":"1","method":"Player.GoTo","params":{"playerid":0,"to":"previous"}} - Предыдушая композиция в плейлисте.
  • Это только небольшое количество основных запросов для управления XBMC. Могу только добавить немного об общем принципе управления, при программировании управляющего софта на любом языке - сначала нужно отправлять запрос на определение текущего активного плеера {"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1}, в ответе вы получите playerid который необходим для дальнейшего управления.

    Самое интересное - то, что XBMC можно управлять на JavaScript с помощью WebSocket подключившись к порту 9090, передавать команды можно без авторизации, например так:
    var socket = new WebSocket("ws://"+ip_xbmc+":"+port_xbmc+"/");
    socket.onopen = function()
    {

    socket.send('{"jsonrpc":"2.0","id":"1","method":"Application.SetVolume","params":{"volume":10}}');

    socket.close();


    };

    Здесь можно посмотреть как это работает.

    Как подключить XBMC к мультимедия ROOM

    Полное описание всех методов можно найти здесь.

    Программы и технологии используемые в моей системе - Умный Дом

    Комментарии Все комментарии

    Написать комментарий