Содержание
MPD (music player daemon)- музыкальный проигрыватель с клиент-серверной архитектурой, воспроизводящий музыку и заданного каталога. Принцип работы заключается в запуске собственно плеера (демона) на сервере и управлении им при помощи любого из богатого выбора клиентов.
Возможен запуск MPD на локальном компьютере и управлять им подключая клиент к localhost.
Преймущества данного плеера:
- легковесность;
- быстрота работы (приложение кэширует файлы и управление в клиентах осуществляется без задержек при добавлении файлов в плейлисты);
- продолжение воспроизведения при прерывании с сохраненного места в треке;
- автообновление базы данных при добавлении новых файлов;
- управление с любого устройства в сети.
Установка
Пакет mpd находится в официальных репозиториях Ubuntu, поэтому для установки необходимо выполнить команду:
sudo apt-get install mpd
Настройка
Конфигурационный файл можно найти по пути
/etc/mpd.conf
он очень хорошо комментирован, поэтому если проблем с английским языком нет, с конфигурацией проблем не будет. Ниже приведено описание только тех пунктов, которые необходимо сконфигурировать для работы. Комментарии для удобства чтения удалены.
Замените «имя_пользователя» на имя своего пользователя.
Директория с музыкой.
# Files and directories ####################################################### music_directory "/home/имя_пользователя/Музыка"
Целесообразно создать в домашней папке директорию mpd, где будут храниться рабочие файлы приложения.
Следующие 6 строчек указывают место хранения рабочих файлов- создаваемых плейлистов, базы данных, лог файла, файла хранения PID и sticker_file.
playlist_directory "/home/имя_пользователя/.mpd/playlists" db_file "/home/имя_пользователя/.mpd/db" log_file "/home/имя_пользователя/.mpd/mpd.log" pid_file "/home/имя_пользователя/.mpd/pid" state_file "/home/имя_пользователя/.mpd/state" sticker_file "/home/имя_пользователя/.mpd/sticker.sql" # ###############################################################################
Далее следуют основные настройки приложения.
Необходимо указать пользователя, от имени которого будет запускаться демон.
# General music daemon options ################################################ user "имя_пользователя"
При запуске демона на сервере, необходимо указать IP адреса, которые будут иметь доступ к управлению плеером, возможные варианты:
localhost- для работы на локальном компьютере;
any- для доступа любого клиента из сети;
определенные IP адреса- через запятую можно выборочно указать адреса, имеющие доступ.
И порт, по умолчанию 6600.
# For network bind_to_address "any" port "6600"
Автообновление базы при добавлении файлов в папку с музыкой
auto_update "yes" ###############################################################################
Доступ к функциям демона по умолчанию.
# Permissions ################################################################# default_permissions "read,add,control,admin" # ###############################################################################
Конфигурация аудио выхода. На современных дистрибутивах Ubuntu по умолчанию установлен музыкальный сервер PulseAudio, который целесообразно указать в настройках mpd, в результате этого вы получите нормализованный звук в различных приложениях и mpd. Достаточно указать только тип и имя, остальные параметры mpd определит автоматически.
# Audio Output ################################################################ audio_output { type "pulse" name "My Pulse Output" server "localhost" # sink "remote_server_sink" # optional } ################################################################
Одновременно с этим нужно настроить pulseaudio на прием звукового потока по TCP, для этого в файле /etc/pulse/default.pa необходимо раскомментировать и подредактировать строчку
load-module module-native-protocol-tcp auth-anonymous=1
Перезапускаем pulseaudio
killall pulseaudio
Указываем кодировку имен файлов и id3-тэгов.
# Character Encoding ########################################################## filesystem_charset "UTF-8" id3v1_encoding "UTF-8" ###############################################################################
sudo service mpd restart
/etc/pulse/client.conf
и выставлением параметра
autospawn = no
Теперь пульс не будет самостоятельно запускаться. Но нам-то он нужен! Создаем файл с именем pulseaudio.desktop в каталоге ~/.config/autostart
touch ~/.config/autostart/pulseaudio.desktop
Открываем текстовым редактором, например
gedit ~/.config/autostart/pulseaudio.desktop
И вписываем туда
[Desktop Entry] Type=Application Exec=pulseaudio Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[ru]=pulseaudio Name=pulseaudio Comment[ru]= Comment=
Использование
Сервер установлен, настроен и запущен, теперь можно подключаться к нему любым из доступных клиентов и наслаждаться вашей любимой музыкой.
Интеграция с Unity
Для интегрирования меню управления MPD из индикатора управления громкостью в Unity необходимо добавить в систему репозиторий, установить пакет mpd-sound-menu
.
sudo apt-add-repository ppa:torkvemada/torkvemada sudo apt-get update && sudo apt-get install mpd-sound-menu mpd-sound-menu &
Данный пакет обеспечивает возможность переключать треки вперед, назад, ставить на паузу, а также быстро переключаться между созданными ранее списками воспроизведения.
После установки необходимо настроить приложение, для чего нажать на индикатор звука Unity и выбрать MPD Sound Menu, в появившемся окне в строке Library Path
необходимо указать путь к папке с музыкой (это нужно для того чтобы при экспорте путей к файлу в MPRIS можно было формировать валидные URI), а также, если MPD запущен не на локальном компьютере, а на сервере, ввести адрес MPD-хоста. При желании, можно выставить автоматический запуск при старте системы.
Выглядит это следующим образом:
Как видно, в меню не отображается обложка диска воспроизводимого трека и содержимое MPD-sound-menu не корректно отображается на светлых темах GTK-кнопки становятся просто черными (ошибки интерфейса не являются mpd-sound-menu-специфичными и все давно зарепорчены в Ubuntu-пакет indicator-sound1)).
В настоящее время разработка проекта фактически заморожена, так как автор больше не использует MPD. Наработки для новой версии (включая асинхронную библиотеку libmpd-qt для работы с сервером MPD) автор готов передать любому энтузиасту, желающему развивать проект дальше.
Консольные клиенты
MPC
Полный функционал управления плеером предоставляет консольный клиент mpc. Для установки необходимо выполнить
sudo apt-get install mpc
MPD+cron+mpc=будильник
Создаем и сохраняем плейлист в mpd c приятными уху записями.
echo "http://media-ice.musicradio.com/ClassicFMMP3" > ~/.mpd/playlists/ClassicFM.m3u
Создаем скрипт2):
- alarm.sh
#!/bin/bash /usr/bin/mpc clear /usr/bin/mpc load ClassicFM /usr/bin/mpc volume 0 /usr/bin/mpc play for ((x=0; x<40; x++)); do /usr/bin/mpc volume $x sleep 3 done sleep 2700 vol=`/usr/bin/mpc volume | /usr/bin/awk '{print($2)}' | /bin/sed s/%//g` for ((x=$vol; x>10; x=$x-2)); do /usr/bin/mpc volume -2 sleep 1 done /usr/bin/mpc stop exit 0
Делаем его исполняемым
sudo chmod +x ~/bin/alarm.sh
Добавляем запись в cron пользователя
crontab -e
Добавляем строку
0 7 * * * /home/имя_пользователя/bin/alarm.sh &>/dev/null
Клиенты GTK+
GMPC
Пакет gmpc находится в официальных репозиториях, для установки необходимо выполнить:
sudo apt-get install gmpc
При первом запуске появится помощник настройки подключения. Указываем параметры подключения, нажимаем кнопку «Подключить» и «Готово». Основное окно выглядит следующим образом.
Клиенты Android
MPDroid
Удобный клиент MPD предоставляющий полный функционал управления демоном.
После установки необходимо выбрать беспроводную сеть, при подключении к которой будет осуществляться управление MPD
После чего необходимо указать IP aдрес сервера и порт для подключения
Окно управления выглядит так:
Клиенты iOS
MPoD
Довольно неплохой клиент на iOS MPoD предоставляет полное управление серверной частью плеера.
Клиент самостоятельно сканирует сеть на наличие MPD, но так же адрес и порт сервера можно указать вручную.
И к тому же в настройках можно выбирать любой источник воспроизведения, указанный в конфиге MPD