четверг, 15 апреля 2010 г.

ALSA в многопользовательской среде

Дома пришлось создать жене отдельного пользователя, чтобы можно было пользоваться одним и тем же софтом и не мешать друг-другу настройками. Все нормально, но вот только неудобно переключаться на соседний сеанс, чтобы выключить музыку или фильм.
Недавно наткнулся на описание плагина softvol для alsa и решил его использовать. Схема работы проста: для каждого пользователя создается отдельный канал в программной громкостью и все они микшируются через dmix.
~/.asoundrc
pcm.!default {
    type            plug
    slave.pcm       "softvol"
}

pcm.softvol {
    type            softvol
    slave.pcm       "plug:dmix"
    
    control {
        name        "Andrey"
        card        0   
    }   
}
После первого использования появится отдельный канал (чтобы он стал доступен уже запущенным приложениям, их нужно перезапустить). Так выглядит alsamixer при работе двух пользователей:


Настройка канала микшера в приложениях:
~/.mplayer/config
ao=alsa
mixer-channel=Andrey

~/.mpdconf
audio_output {
   type       "alsa"
   device     "default"
}
mixer_type    "alsa"
mixer_device  "default"
mixer_control "Andrey"

Чтобы теперь разом отключить звук у другого пользователя достаточно повесить на хоткей amixer set Ann 0%

1 комментарий:

  1. Какой осей вдоём пользуетесь?
    Я пользуюсь Debian Squeeze.
    И ещё пришли красивые диски от Ubuntu (Canonical)

    ОтветитьУдалить