Slave PCM не используется при использовании мульти-плагина ALSA - PullRequest
1 голос
/ 14 марта 2020

Я пытаюсь использовать плагин multi ALSA для копирования звука с моего рабочего стола на устройство Loopback, созданное snd-aloop. Тем не менее, когда я пытаюсь использовать .asoundrc ниже, я получаю эту ошибку:

> aplay -vv test.wav
Playing WAVE 'test.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Stereo
ALSA lib pcm_params.c:2226:(snd1_pcm_hw_refine_slave) Slave PCM not usable
aplay: set_params:1314: Broken configuration for this PCM: no configurations available

.asoundr c:

pcm.both {
    type multi
    slaves.a.pcm "dmixer" 
    slaves.b.pcm "loop"
    slaves.a.channels 2
    slaves.b.channels 2

    bindings.0 { slave a; channel 0; }
    bindings.1 { slave a; channel 1; }
    bindings.2 { slave b; channel 0; }
    bindings.3 { slave b; channel 1; }
}

pcm.dmixer {
    type dmix
    ipc_key 1231
    ipc_perm 0666
    slave.pcm "hw:PCH,0"
    slave.channels 2
    slave.rate 48000
    slave.format S32_LE
    bindings {
        0 0 
        1 1
    }
}


pcm.loop {
    type dmix
    ipc_key 29637
    slave {
        pcm "hw:Loopback,0"
        rate 48000
        format S32_LE
        channels 2
        period_size 1024
        buffer_size 9182
    }
}

pcm.hubcap {
    type plug
    slave {
        pcm "hw:Loopback,1,0"
        rate 48000
        format S32_LE
    }
}

pcm.!default {
    type asym
    playback.pcm {
        type plug
        slave.pcm "both"
        ttable [
            [ 1 0 1 0 ]
            [ 0 1 0 1 ]
        ]
    } 
    capture.pcm "plug:dsnoop" 
}

defaults.pcm.surround21.card off
defaults.pcm.surround21.device off
defaults.pcm.surround40.card off
defaults.pcm.surround40.device off
defaults.pcm.surround41.card off
defaults.pcm.surround41.device off
defaults.pcm.surround50.card off
defaults.pcm.surround50.device off
defaults.pcm.surround51.card off
defaults.pcm.surround51.device off
defaults.pcm.surround71.card off
defaults.pcm.surround71.device off

Замечания:

Когда я удаляю оба dmix es, он работает нормально.

В плагине multi, когда я переключаю оба ведомых на один и тот же PCM, он прекрасно работает для этого одного PCM.

Пример.

...
type multi
    slaves.a.pcm "dmixer" 
    slaves.b.pcm "dmixer"
...

1 Ответ

0 голосов
/ 02 апреля 2020

Попробуйте установить slave.period_size 1024 в pcm.dmixer блок.

...