Pull to refresh

Рулим музыкой с дивана

Reading time2 min
Views1.4K
Я люблю слушать музыку… Нет. Я очень люблю слушать музыку. Слушаю ее обыкновенно на плеере (Cowon D2 2Gb+4Gb SD), но этого объема мало, поэтому дома активно пользуюсь компьютером, где хранится вся коллекция музыки. Однако, это довольно неудобно — переключать музыку, составлять плейлисты — чуть что нужно подходить к компьютеру и тд. Поэтому мне пришла в голову идея сделать этот процесс удобнее…

Я обнаружил у себя в закромах некий девайс под названием PSP, используемый мной для чтения книг, просмотра фильмов и аниме(да-да, я смотрю аниме :) ).

Я решил, что здорово было бы управлять с помощью него музыкой на компьютере — действительно, у данного устройства есть WiFI, следовательно можно без проблем подключиться к домашней локальной сети. Тогда возник вопрос, как это реализовать. Я долго раздумывал что-бы такое сделать и тут внезапно наткнулся на такую вещичку — mpd (Music Player Daemon). Позволяет поднять под линуксом плеер-демон, с качественно проработанной системой управления. На сайте предложены различные клиенты(выбор впечатляет), я остановил свой выбор на PHP-клиентах. Т.е. с psp заходить на некий адрес в локалке и оттуда рулить плеером. Но, к моему глубокому сожалению, только один из всех клиентов был оптимизирован для «маленьких» экранов, да и тот мне не понравился:

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

Создание mpd-клиента


Первым делом, конечно же я установил mpd

sudo aptitude install mpd

Затем отредактировал файл настроек:

sudo gedit /etc/mpd.conf

мой файл с настройками

Теперь создаем базу музыки:

sudo mpd --create-db

Наконец можно запускать:

sudo /etc/init.d/mpd start

Итак, демон установлен, база музыки создана, можно приступать к созданию клиента.
(Я не буду рассказывать о функционале php библиотеки mpd — вы можете скачать ее, и изучить самостоятельно)
Первым моим решением было делать клиент на xAjax, но к сожалению оказалось, что интернет браузер psp отказывается с ним сотрудничать. Пришлось остановиться на стандартной модели GET передачи команд.
Я думаю, вам не очень интересно читать комментированный php код в статье, поэтому желающие могут посмотреть его вот здесь.
Расскажу лишь о трудностях, которые возникли при написании:
1) встроенный в psp браузер обладает очень интересной системой кеширования, поэтому для того, чтобы каждый раз он «прогружал» страницу, мне пришлось добавить ко всем ссылкам параметр ?hash=time(), чтобы браузер думал, что это другая «уникальная» страница
2) Долго бодался с милой техподдержкой корбины (это конечно не совсем связано с клиентом, но нервы сильно потрепало :) )
Итак, результат: могу из любой части квартиры управлять всей музыкальной библиотекой


Чем безмерно доволен :) Спасибо за внимание.

P.S. желающие могут скачать клиент
Tags:
Hubs:
Total votes 12: ↑11 and ↓1+10
Comments10

Articles