Como obter som em um servidor X separado no Ubuntu 11.04 ou posterior?


10

Eu configurei meu sistema Ubuntu para poder iniciar qualquer aplicativo em um servidor X separado. A execução de jogos ou, por exemplo, o XBMC em um servidor X separado tem algumas vantagens importantes.

O problema, porém, é que, quando você alterna para o segundo servidor X (Ctrl + Alt + F8), não ouve nenhum som. Estranhamente, ao voltar para a área de trabalho (Ctrl + Alt + F7), você pode ouvir de repente o som do segundo servidor X. Isso significa que o som está funcionando, mas você simplesmente não pode ouvi-lo enquanto estiver no segundo servidor X.

Nas versões mais antigas do Ubuntu (por exemplo, Ubuntu 10.10), existe um comando ( ck-launch-session) que você pode executar no segundo servidor X e o som funciona. Infelizmente, este comando não tem mais esse efeito no Ubuntu 11.04 e posterior. Este é o comando que eu usaria para iniciar o XBMC em um servidor X separado:

xinit /usr/bin/ck-launch-session /usr/bin/xbmc -- :1

Como posso ativar o som quando estou em um segundo servidor X no Ubuntu 11.04 ou posterior?

Relatório de bug relacionado: 366404


Suponho que você precisaria ter a saída do servidor pulseaudio (ou qualquer servidor de som que você esteja usando, se não o pulseaudio) no segundo xserver roteado como uma entrada para o servidor pulseaudio no primeiro xserver - isso ocorre porque apenas um audioserver (ou, se você não estiver executando um servidor de áudio, apenas um aplicativo) poderá acessar a placa de som por vez. Não sei ao certo como fazer isso, mas espero que tenha uma idéia de onde procurar (a documentação do pulseaudio).
adempewolff

Respostas:


3

Quando fiz esse tipo de coisa, tive que fazer parte do grupo "áudio". Dessa forma, o áudio de todas as telas pode ser ouvido. Um problema: alternar as telas não altera o áudio emitido. Se eu tivesse uma instância do KDE executando em uma tela e tocando música com o Amarok, seria capaz de ouvi-la em todas as telas.

Se você (como eu) não sabe como adicionar um usuário a um grupo por meio do prompt de comando, basta instalar "kuser" no Synaptic ou no centro de software ou digite sudo apt-get install kusero terminal.

Eu me lembro de ter tido alguns problemas para iniciá-lo como root no iniciador padrão. Se ocorrer um erro ao dizer que não é possível acessar um arquivo, geralmente não é um problema, apenas verifique se você está usando o programa como root. Se apenas indicar que você precisa ser root, feche a janela, pressione ALT + F2 e digite gksudo kuser. O computador solicitará sua senha e o Kuser será carregado corretamente.


2
Obrigado por fornecer a resposta! Não acredito que a resposta seja simples assim. No entanto, sou um cara da linha de comando e, sudo usermod -a -G audio $USERseguido de uma reinicialização do sistema, faz o truque. Felizmente, você ainda não ouvirá o áudio de outros usuários.
Serrano

este utilizado para o trabalho, mas eu reinstalado ubuntu e ele parou de funcionar
Aquarius Poder

@AquariusPower: isso ainda funciona para mim no Ubuntu 15.04.
Serrano

1

Tente tornar suas credenciais de áudio de pulso conhecidas no segundo x-server usando pax11publish -D :1 -e

(onde: 1 é o número de exibição do seu segundo X-Server, normalmente: 0 é o primeiro, contando para cima)

O aplicativo que você está executando provavelmente está tentando ler os atributos de pulso nas propriedades da janela raiz do X11.

Como alternativa, você pode ficar preso no principal consolekit f * ckup.


Obrigado pela sua resposta, Paul, mas infelizmente não funcionou. Tentei executar esse comando do primeiro e do segundo servidor X. E testei o som com diferentes aplicações.
Serrano

wow ... então eu realmente não têm solução, mas eu aprecio o problema ...
Paul Hänsch

trabalhou! não tenho certeza se ele também seria necessário estar em áudio grupo (Im muito preguiçoso para remover e xD test)
Aquarius Poder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.