Настройка звука на внешней USB карте для Raspberry pi3
После того как я приобрёл внешнюю звуковую USB карту, я долго не мог заставить ее работать, а после того как она заработала, перестала говорить Алиса.
И так по порядку, что я в итоге сделал, что бы у меня работала и Алиса и Радио.
sudo nano /etc/modprobe.d/alsa-base.conf
Вставил следующий код
nstall sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7
options snd-usb-audio index=0
У меня Сборка сергея и плеер там работает через MPD
Поэтому я открыл файл конфига плеера
sudo nano /etc/mpd.conf
изменил следующий блок
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
mixer_type "software" # optional
mixer_control "PCM" # optional
}
Алиса и радио заработали - но вот регулировка звука пропала
Как я понял в файлах плеера есть такаой код
modules/app_player/mpd.php
safe_exec('amixer sset PCM,0 '.$volume.'%');
А в моем случае, что бы убавить громкость нужен код такой
safe_exec('amixer sset Speaker,0 '.$volume.'%');
ОБНОВЛЕНИЕ 23.03.18
Мои бессонные ночи, все таки дали мне результат который я очень ждал.
Если делать все как указано выше, то я получаю не совсем рабочий вариант. Дело в том, что yf малинку я установил так же LMS (squeezebox) и если запустить LMS а полсе запустить плеер из МД - то звук будет идти тлько из LMS, так же и на оборот, На форуме пару советов мне дал nick7zmail - за что ему спасибо.
Что я понял пройдя не простой пусть.
Если вы используете устройство которое не имеет аппаратное мекширование, тогда вам нужен плагин alsa dmix - он на программном уровне делает мекирование каналов.
Давайте сразу начнем с конфигурации этого плагина.
nano /etc/asound.conf
Содержимое:
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:1,0"
period_time 0
period_size 1024
buffer_size 8192
rate 44100
}
bindings {
0 0
1 1
}
}
pcm.dsp0 {
type plug
slave.pcm "dmixer"
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.default {
type plug
slave.pcm "dmixer"
}
ctl.mixer0 {
type hw
card 0
}
В файле sudo nano /etc/modprobe.d/alsa-base.conf
можно закоментировать
options snd-usb-audio index=0
В файле nano /etc/mpd.conf
я закоментировал строку
user "mpd"
Ранее редактируемый блок теперь имеет вид
audio_output {
type "alsa"
name "My ALSA Device"
device "dmixer" # optional
mixer_type "software" # optional
mixer_device "dmix"
mixer_control "PCM" # optional
}
Для LMS так же внесем изменения в файл sudo nano /usr/local/bin/squeezelite_settings.sh
SL_SOUNDCARD="default"
SB_SERVER_IP="192.168.1.30"
После этого у вас будет работать звук сразу из двух плееров. Что бы регулировать звук плеера и системный звук я воспользовался решением step74
Привожу его текст ниже
Плеер использую mpd
плеер регулирует громкость программно, для этого подкорректировал файл modules/app_player/mpd.php
закоментировал строчку
у меня это 58 строчка
Код:
/
```/safe_exec('amixer sset PCM,0 '.$volume.'%');
и вместо нее вставил код
Код:
$mpd->SetVolume($volume);
Добавил метод в класс Computer
метод заглавил MasterVolumeLevelChanged
и код сделал:
Код:
$params['VALUE']=preg_replace('/[^0-9]/', '', $params['VALUE']);
$this->setProperty('MasterVolumeLevel',$params['VALUE']);
$input= array('100','95','90','85','80','75','70','65','60','55','50','45','40','35','30','25','20','15','10','5','0');
$output=array('100','99','98','96','95','93','91','89','87','85','83','80','77','73','71','66','61','53','43','25','0');
for ($i=0; $i <= count($input); $i++){
if ($input[$i]==$params['VALUE']){
$volume=$output[$i];
}}
safe_exec('amixer sset PCM,0 '.$volume.'%');
say("Изменилась громкость до ".$params['VALUE']." процентов");
В меню управления добавил раздел selectbox c заглавием Системная громкость
привязал к объекту ThisComputer
методу MasterVolumeLevelChanged
в поле данные вставил громкость в процентах с 0% - до 100% с интервалом 5
Москва, Россия
На форуме: Alex77