Интегрируем плеер Foobar2000 в систему вместо VLC

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
shurlin
Сообщения: 39
Зарегистрирован: Вс апр 22, 2012 3:18 pm
Благодарил (а): 0
Поблагодарили: 4 раза

Интегрируем плеер Foobar2000 в систему вместо VLC

Сообщение shurlin » Сб май 12, 2012 11:45 pm

Всем привет,

после очередных танцев со стандартным плеером (vlc), который у меня работал с большой задержкой, я попытался найти ему альтернативу и набрел на плеер foobar2000(http://www.foobar2000.org/)
К которому уже существует библиотека для управления им через http - foo_httpcontrol
(http://code.google.com/p/foo-httpcontrol/downloads/list) оставалось дело за малым - поставить его и попытаться прикрутить его к системе.



Что в итоге надо сделать
1. Устанавливаем плеер http://www.foobar2000.org/

2. Скачиваем дополнительную библиотеку и оба теплейта для вебстраниц - default и ajquery (всего 3 архива)

3. Dll-ку кладем в Programm Files\foobar2000\components

4. в папку c:\Documents and Settings\User(имя пользователя заменить на свое)\Application Data\foobar2000\foo_httpcontrol_data кладем в темплейты из архивов каждый в свою папку. Получаем что у нас в папке две подпапки - default и ajquery

5. запускаем плеер

6. проверяем работу вебоболчки плеера на той машине где он установлен, должна появиться страница в браузере если набрать 127.0.0.1:8888 (8888 - обязательно, это порт на котором весит плеер, по умолчанию там 80, а на нем у нас majordomo)

7. если страница загрузилась и плеер через нее управляется продолжаем дальше, если нет возвращаемся на 3 и читаем ридми к плееру и компоненту

8. идем в контрольную панель системы majordomo и делаем новую домашнюю страницу (home pages)
TITLE: Foobar
PRIORITY: 100
TYPE: URL
URL: http://"IP адрес машины с плеером":8888/ajquery/ - меняем "IP адрес машины с плеером" без кавычек

примерно так http://192.168.0.1:8888/ajquery/

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

10. теперь надо перекрутить Player Control под этот плеер (опционально, потеряем часть оригинального функционала, тк меняем управление)

11. ищем файл _majordomo\htdocs\modules\app_player\app_player.class.php , делаем резервную копию на всякий.
меняем в ней часть кода (вроде в 216 строки)

Код: Выделить всё

    if ($terminal['PLAYER_TYPE']=='vlc' || $terminal['PLAYER_TYPE']=='') {

      if ($command=='refresh') {
       $out['PLAY']=preg_replace('/\\\\$/is', '', $out['PLAY']);
       
	   curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":8888/default/?cmd=PlayOrPause&param3=NoResponse");
         
	 $res=curl_exec($ch);
      }

      if ($command=='fullscreen') {
       curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":".$terminal['PLAYER_PORT']."/rc/?command=vlc_fullscreen");
       $res=curl_exec($ch);
      }


      if ($command=='pause') {
       curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":8888/default/?cmd=PlayOrPause&param3=NoResponse");
       $res=curl_exec($ch);
      }

      if ($command=='next') {
       curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":8888/default/?cmd=StartNext&param3=NoResponse");
       $res=curl_exec($ch);
      }

      if ($command=='prev') {
       curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":8888/default/?cmd=StartPrevious&param3=NoResponse");
       $res=curl_exec($ch);
      }

      if ($command=='close') {
       curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":8888/default/?cmd=Stop&param3=NoResponse");
       $res=curl_exec($ch);
      }
   } elseif ($terminal['PLAYER_TYPE']=='xbmc') {
    include(DIR_MODULES.'app_player/xbmc.php');
   }
по сути мы поменяли управляющие строки для каждой кнопки плеера на свои вида:
curl_setopt($ch, CURLOPT_URL, "".$terminal['HOST'].":8888/default/?cmd=PlayOrPause&param3=NoResponse");
где cmd=PlayOrPause - команда для плеера фубар (список всех комманд плеера здесь http://code.google.com/p/foo-httpcontrol/wiki/Commands)
param3=NoResponse - обязательный параметр, отключает ответ от плеера

12. сохраняем и проверяем

далее опционально

13. можно поменять цвета плеера в темплейте которые мы ставили в пункте 4

14. можно поставить другой скин на плеер, скины есть здесь http://www.hydrogenaudio.org/forums/ind ... opic=62218 . мне понравился vairulez, но с системой он работал криво, оставил ajquery

15. в настройках плеера есть fade in (плавное прибавление громкости) и fade out (затухание) по громкости, очень рекомендую.

вот как это выглядит:

Изображение

из плюсов этого плеера в моем случае:

+ работа в реальном времени, почти без задержек
+ полный функционал плеера


@sergejey Сергей, если у вас будет возможность, посмотрите, возможно ли добавить недостающий функционал к этому плееру, точнее реализовать для него функцию playMedia, чтобы была возможность использовать его со скриптами. Моих знаний в php и аяксе не хвататет для ткой задаче
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Интегрируем плеер Foobar2000 в систему вместо VLC

Сообщение sergejey » Пн май 14, 2012 1:57 pm

отлично получилось! )

я поставил в гугл-коде задачу интеграции управление этим плэером в стандратном пакете. будут вопросы буду обращаться за советом.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Интегрируем плеер Foobar2000 в систему вместо VLC

Сообщение sergejey » Вт июл 10, 2012 1:04 pm

В последних исходниках появилась полноценная поддержка Foobar2000. Работает обычное управление + совместимость с модулем медиа-библиотеки + работа из скриптов через playMedia.

В настройках терминала надо только указать этот тип плэера:

Изображение

И надо что б он был запущен, т.к. система его сама не запускает.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ToteMeiSter
Сообщения: 54
Зарегистрирован: Пн ноя 09, 2015 5:42 pm
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Интегрируем плеер Foobar2000 в систему вместо VLC

Сообщение ToteMeiSter » Чт дек 24, 2015 3:36 pm

Все сделал по инструкции.
На стандартный не заменяется.
Module "app_player" not found ([module name="app_player"])

Сам по себе foobar работает по http управляется без проблем.
Ответить