В статье пойдёт речь о базовой настройке звуковой подсистемы минимального дистрибутива Debian на микрокомпьютере Orange Pi PC и установке программы медиаплейера. Для "движка" плейера был выбран медиа-сервер Mopidy, написанный на Python. Почитать о нём можно на сайте проекта

Предполагается, что на микрокомпьютер установлена операционная система и есть возможность подключиться к ней по ssh. Как это сделать можно почитать в статье "Установка Debian Wheezy на микрокомпьютер Orange Pi PC".

План работ.

  1. Установка и настройка средств ALSA.
  2. Установка звукового сервера Mopidy.
  3. Установка вэб-интерфейса к Mopidy.
  4. Запуск и отладка.
  5. Настройка Mopidy для работы с внешними программами управления.

Шаг 1. Установка и настройка средств ALSA

Включаем питание микрокомпьютера, ждём окончания процесса загрузки, подключаемся к операционке по ssh.

Сперва обновляем систему.

# apt-get update
# apt-get dist-upgrade

Устанавливаем пакеты для работы ALSA.

# apt-get install alsa-base alsa-utils gstreamer0.10-alsa python-alsaaudio

На плате работает два средства вывода звука: HDMI-порт и аналоговый разъём на плате. По умолчанию вывод звука работает через HDMI. Чтобы переключить на аналоговый аудио-выход, создаём файл /etc/asound.conf с таким содержанием:

asound.conf
pcm.!default {
    type hw
    card 0
}
 
ctl.!default {
    type hw
    card 0
}

Запускаем alsamixer, выбираем карту audiodecodec и все регуляторы кроме "Lineout volume control" выставляем в "0". Сам "Lineout volume control" выставляем в 60….80. Если выставить больше - возрастают искажения звука.

Тестируем звук:

# speaker-test -twav -c2

Поочерёдно в левом и правом динамиках должен идти звук. Для остановки теста жмём Ctrl+C. Если звук не идёт, пробуем через alsamixer включить выход.

Теперь нужно сделать один тест - проверить, сохраняются ли настройки микшера после перезагрузки машины. Пробуем перезагрузить командой reboot. После рестарта и повторного входа в систему запускаем alsamixer.

Канал "Lineout" возвращается в 100%

Если настройки выхода "Lineout" снова выставились в "0" или в "100", значит скрипты сохранения и восстановления настроек микшера не срабатывают. Автор провёл исследования и выяснилось, что в версии Debian 7.9 (с alsa-base версии 1.0.25+3~deb7u1 и alsa-utils 1.0.25-4) не срабатывает восстановление настроек, хотя настройки исправно сохраняются в /var/lib/alsa/asound.conf . Причины пока не выяснены и автор для обхода данной проблемы применил "костыль": нужно в /etc/rc.local , перед оператором exit 0 поместить строку:

/usr/bin/amixer -c 0 cset numid=10 1; /usr/bin/amixer -c 0 cset numid=6 24

,здесь две команды - первая включает (unmute) выход, а вторая - выставляет уровень "Lineout" примерно в 80%. Команды будут выполняться сразу же после старта операционки и загрузки всех демонов.

Дополнительно можно посмотреть статью Audio_Codec, где описана звуковая подсистема чипа H10 (драйвер sunxi), а также raw-состояние микшера:

# amixer contents

Звуковая подсистема готова. Приступаем к установке звукового сервера Mopidy

Шаг 2. Установка Mopidy

Устанавливаем дополнительные компоненты.

# apt-get install gstreamer1.0-alsa git  python python-setuptools

gstreamer1.0-alsa будет использоваться самой mopidy; git, python, python-setuptools - для работы mopidy и сборки вэб-интерфейса.

Установка mopidy

Импортируем ключ:

# wget --no-check-certificate https://apt.mopidy.com/mopidy.gpg | apt-key add -

Скачиваем sources.list для подключения к репозиторию mopidy:
- для Debian wheezy или Ubuntu 12.04 LTS:

# wget --no-check-certificate https://apt.mopidy.com/wheezy.list

- для более новых дистрибутивов (если на микрокомпьютер установлен другой дистрибутив):

# wget --no-check-certificate  https://apt.mopidy.com/jessie.list

Копируем тот или иной лист в каталог /etc/apt/sources.list.d/

Либо можно не скачивать соурс-листы, а добавить строки в /etc/apt/sources.list:
- для Debian wheezy или Ubuntu 12.04 LTS:

deb http://apt.mopidy.com/ wheezy main contrib non-free
deb-src http://apt.mopidy.com/ wheezy main contrib non-free

Ну и собственно установка:

# sudo apt-get update
# sudo apt-get install mopidy

Производим первоначальную настройку. Редактируем файл /etc/mopidy/mopidy.conf

mopidy.conf
[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy
 
[logging]
config_file = /etc/mopidy/logging.conf
debug_file = /var/log/mopidy/mopidy-debug.log
 
# Пути, где будут храниться медиафайлы
[local]
data_dir = /var/lib/mopidy/local
media_dir = /var/lib/mopidy/media
 
# Путь, где будут храниться плей-листы
[m3u]
playlists_dir = /var/lib/mopidy/playlists
 
# Тип устройства вывода звука и регулятора громкости. Начальная громкость. 
# Громкость регулируется программно - внутри Mopidy. Если необходимо использовать
# аппаратное регулирование смотрите дополнение https://github.com/mopidy/mopidy-alsamixer
[audio]
mixer = software
mixer_volume = 80
# output = autoaudiosink
output = alsasink
 
# Настройки подключения к серверу для функции удалённого управления через вэб-интерфейс
[http]
enabled = true
hostname = 0.0.0.0
port = 6680
static_dir =
zeroconf = Mopidy HTTP server on $hostname
 
[stream]
enabled = true
protocols =
    http
    https
    mms
    rtmp
    rtmps
    rtsp
timeout = 5000
metadata_blacklist =
 
# Настройки прокси-сервера: раскоментируйте и установите нужные параметры,
# если доступ в Интернет происходит через прокси-сервер.
# [proxy]
# scheme = http
# hostname = 192.168.1.1
# port = 3128
# username =
# password =

Подробнее с опциями можно ознакомиться на странице.

Шаг 3. Установка вэб-интерфейса

По опыту эксплуатации медиасервера на базе дистрибутива Pi MusicBox, выбран простенький интерфейс Mopidy-MusicBox-Webclient (сайт: https://github.com/pimusicbox/mopidy-musicbox-webclient ) Более подробную инструкцию можно почитать на странице.

Переходим в какой-нибудь каталог и делаем копию исходных кодов проекта

# cd ~
# mkdir musicbox
# cd musicbox
# git clone https://github.com/pimusicbox/mopidy-musicbox-webclient

Производим установку:

# cd mopidy-musicbox-webclient
# python setup.py install

Шаг 4. Запуск и отладка

Запускаем mopidy и проверяем работоспособность:

# /etc/init.d/mopidy start

Для начала, mopidy должен отобразиться в списке процессов. Если нет - просматриваем лог на предмет ошибок: /var/log/mopidy/mopidy.log

Запускаем браузер и обращаемся по адресу устройства: http://192.168.1.10:6680/mopidy/

Основная страница вэб-интерфейса Mopidy

Отобразится страница интерфейса управления сервера. Если Mopidy-MusicBox-Webclient был установлен корректно, то появится ссылка на интерфейс ("musicbox_webclient"). Переходим на неё.

Cтраница вэб-интерфейса MusicBox

Если микрокомпьютер подключен к Интернету и сеть правильно настроена, можно перейти на пункт меню "Streams" и прослушать какую-нибудь станцию. Либо можно скопировать MP3-файлы в каталог /var/lib/mopidy/media через scp или посредством usb-флешки, перейти на "Browse" > "Files" > "Media" и выбрать mp3-файл. Всё должно проигрываться.

Дополнительные средства управления

Управление с помощью программ

Сервером можно управлять по сети с помощью внешних программ, например через протокол, реализованный в MPD. Подробнее о способах управления можно почитать на сайте проекта, а для примера реализуем управление через программу с графическим интерфейсом - Sonata.

Сперва в конфигурационном файле /etc/mopidy/mopidy.conf добавим блок с параметрами для протокола MPD:

mopidy.conf
[mpd]
enabled = true
hostname = 0.0.0.0
port = 6600
password = 1234
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname
command_blacklist = 
  listall
  listallinfo

, где значение параметра password - это пароль на доступ на управление, его нужно будет прописать в профиле соединения программы Sonata.

Теперь, на своём компьютере, откуда будет идти управление, устанавливаем собственно программу:

# apt-get install sonata

Открываем через правую кнопку мыши меню "Соединение", создаём профиль и вводим адрес и пароль сервера.

Обзор других программ управления с графическим интерфейсом можно найти здесь.


На этом реализация базового варианта плейера завершена. Функционал имеет такие возможности:

  1. Прослушивание треков в формате mp3 из каталогов (включая примонтированных) на накопителях (флешка микрокомпьютера или внешняя usb-флешка). Естественно, вы должны создать программную инфраструктуру для реализации различных удобств по доступу к медиафайлам - будь-то автоматическое монтирование флешек и указание Mopidy директории, либо монтирование какого-то сетевого ресурса.
  2. Прослушивание потоковых радиостанций как с плей-листов, так и с установленных через вэб-интерфейс во внутреннюю базу адресов станций.
  3. Управление посредством вэб-интерфейса или внешних программ по протоколу MPD.

В режиме воспроизведения файлов, нагрузка на процессор составляет около 15%.

Источники информации

А также

Печать/экспорт