Aplicações que pegam ALSA exlusively

1

Então, minha segunda pergunta sobre o áudio do linux no site. As anterior gerou bastante informação introdutória.

Eu tenho ALSA e PulseAudio instalado.

  • Antes de instalar o PulseAudio, nenhuma placa de áudio estava sendo detectada no painel gráfico "Som". E agora, em "Aplicativos", vejo listado ALSA plug-in(firefox) . Por que preciso do PulseAudio para detectar a placa de som e para reproduzi-la no ALSA?

  • alsamixer não funciona - silenciar o mestre não tem efeito. Além disso, apenas um aplicativo pode ser executado simultaneamente - iniciando um segundo reportando device busy .

Portanto, minha mixagem de software não está funcionando. Como faço para corrigir isso? Como posso rastrear qual caminho leva os sinais dos aplicativos para o hardware?

Note que "o áudio está sendo transmitido através de USB. alsamixer sais no options for ths device e os controles que eu estava modificando apper para ser a placa de som da placa-mãe.

    
por Vorac 12.08.2013 / 16:05

1 resposta

1

Eu posso responder pelo menos uma das suas perguntas. Tenha em mente que alsa e pulseaudio não são substitutos um para o outro, eles ocupam lugares diferentes na pilha de software. Pulseaudio é adicionado em cima de alsa e suplanta as ferramentas alsa userland. Não substitui a alsa.

under "Applications" I see listed ALSA plug-in(firefox). Why do I need PulseAudio to detect the sound card and to play through ALSA?

É o contrário. O plug-in pulseaudio para alsa é para alsa, para que seja tocado por pulseaudio ou, pelo menos, pelo WRT firefox. No entanto, eu acredito que ele tem que voltar para ALSA eventualmente, na medida em que ALSA é o sistema de hardware real (continue lendo), de acordo com as camadas de pilha de software que acabamos de mencionar.

Os aplicativos devem ser sensíveis ao uso para usá-lo; Geralmente isso significa que eles têm algum tipo de plugin próprio. Por exemplo, se você usar mpg123 em um sistema com pulseaudio em execução, mas não tiver o "plug-in pulseaudio mpg123" instalado, o mpg123 provavelmente não conseguirá acessar um dispositivo de saída e falhará. Pulseaudio não pode "interceptar" fluxos de som de aplicativos: os aplicativos devem iniciar a relação intencionalmente.

O ALSA é um sistema de kernel de baixo nível (com algumas partes do território do usuário) que os aplicativos geralmente usam a menos que tenham um plugin de maior prioridade instalado, como um para pulseaudio. Nesse caso, eles transmitem para pulseaudio. Pulseaudio é um sistema userland de nível mais alto (ou seja, não é um subsistema de kernel e não tem acesso direto ao hardware) que pode fazer várias coisas com o fluxo, mas no final, se você estiver usando placa de som local, deve passar isso para o sistema de hardware de nível inferior. Eu presumo que (no linux) isso significa ALSA, no qual o pulseaudio mantém um bloqueio, e é por isso que outras coisas de userland (como o "alsamixer") não podem ser usadas. [Na verdade, essa é uma das principais razões para o uso do pulseaudio: caso contrário, o sistema de som estaria disponível apenas para um aplicativo de cada vez. Pulseaudio é aquele aplicativo, mas multiplexa de outras aplicações.]

O acordo com o plugin alsa firefox é que flash e pulseaudio não se dão bem (não há nenhum plugin para flash, ou nenhum que funcione). Então flash nunca procura por pulseaudio, parece alsa. O ponto do plugin é permitir que o alsa passe o som para pulseaudio ao invés de hardware; Quando pulseaudio, em seguida, passa de volta para alsa, o plugin alsa-firefox não está envolvido, então não há círculo: alsa faz o seu trabalho com o hardware. Resumindo:

Flash / firefox plug-ins userland para pulseaudio - > pulseaudio - > subsistema alsa kernelspace - > driver de placa de som

O primeiro passo pode ser qualquer aplicativo de áudio original. Exatamente por que não há apenas um plugin flash pulseaudio Eu não sei, mas é um problema histórico.

So my software mixing is not working. How do I fix it?

Use um mixer pulseaudio, não o site do usuário.

    
por 12.08.2013 / 17:42