LINUX.ORG.RU

Возможно ли так настроить ALSA? (звук через первое устройство, если отсутствует второе, но не одновременно через оба)

 ,


0

1
→ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Device [USB Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Ноутбук, card0 это встроенная карта, card 1 это usb-конвертор c S/PDIF tosslink входом/выходом, чтобы подключать ноут к театру, через который я обычно слушаю звук на рабочем месте.

Сейчас настроил так, ~/.asoundrc:

pcm.dmixed {
        type asym
        playback.pcm {
                type dmix
                ipc_key 5678293
                ipc_perm 0660
                ipc_gid audio

                slave {
                        channels 2
                        pcm {
                                format S16_LE
                                rate 48000
                                type hw
                                card 1
                                device 0
                                subdevice 0
                        }

                        period_size 1024
                        buffer_size 8192
                }

                bindings {
                        0 0
                        1 1
                }
        }
        capture.pcm "hw:0"
}

pcm.!default {
        type plug
        slave.pcm "dmixed"
}
Звук в системе работает через usb-карту, включая браузеры всякие и т.п., короче везде. Но когда usb-карту отключить, то звука нет нигде, кроме плееров, где это можно настроить выбрав устройство, но с браузерами такое же не настроишь.

А можно ли так настроить, что звук будет работать через card0, если card1 не подключен в данный момент? Без перезагрузки alsa. Чтобы я мог слышать звук через ноут, а не театр, когда отхожу от рабочего места на кровать, например.

Если у кого-то есть такая настройка, дайте ваш конфиг пожалуйста.

Спасибо.


Может, при одновременном выводе на оба устройстава попробовать мютить каналы, может даже не средствами альсы.

aplay ★★★★★ ()
Ответ на: комментарий от lazyklimm

Серьёзно, сама по себе ALSA этого не умеет.

похоже, что проблему можно легко решить правилом udev'а, который при втыке или вытыке usb-карты будет делать необходимые телодвижения.

Я так xrandr'ом управляю, монитор автоматически включается при втыке hdmi и xrandr --auto при вытыке, за этим тоже следит udev.

kep ()
Ответ на: комментарий от kep

а какие телодвижения он будет делать?

проблема в том, что приложения не перечитывают конфиг, а тебе его (в общем случае) нужно менять

lazyklimm ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.