Ошибка ALSA "плагин dmix поддерживает только поток воспроизведения" при использовании dmix на beagleboard

На Beagleboard он мне нужен для воспроизведения звука из нескольких процессов.

По умолчанию /etc/asound.conf пуст, поэтому я поместил этот пример dmix в.

Теперь sund хорошо смешивается, но когда я пытаюсь запустить процесс, использующий микрофон, я получаю "(snd_pcm_dmix_open) The dmix plugin supports only playback stream",

Что я могу исправить в конфигурации, чтобы микширование программного обеспечения и работа микрофона работали?

1 ответ

В CLответ (хотя и не слишком подробный и не приводящий) правильный; если вы хотите также использовать микрофон при использовании dmix, вам нужно использовать asym тоже.

Пример конфигурации, позволяющий как dmixи доступ к микрофону может выглядеть так:

pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
   rate 44100
    }

    bindings {
        0 0
        1 1
    }
}

pcm.asymed {
        type asym
        playback.pcm "dmixer"
        capture.pcm "hw:0,0"
}



pcm.dsp0 {
    type plug
    slave.pcm "asymed"
}

pcm.!default {
        type plug
        slave.pcm "asymed"
}

pcm.default {
   type plug
   slave.pcm "asymed"
}

ctl.mixer0 {
    type hw
    card 0
}

или какова бы ни была ваша конфигурация, вы хотите, чтобы ваш default не быть dmixer но asym (и иметь это pcm.asymed блок с определяет отдельные playback [Ваш старый dmixer и capture устройства)

dmix Плагин работает только для устройств воспроизведения.

Чтобы иметь возможность использовать устройство, которое использует dmix для воспроизведения и выполнения чего-то еще для захвата, вы должны использовать плагин asym для определения различных плагинов для воспроизведения / захвата.

Другие вопросы по тегам