Quais pacotes são necessários para ter saída de som dos applets java?

0

Eu tenho uma configuração muito minimalista do ubuntu preciso, criada usando o debootstrap. Então, por favor, não assuma que quaisquer pacotes são instalados apenas porque eles geralmente são. Nesse sistema, gostaria de reproduzir alguns sons de um applet java. No entanto, isso sempre falha com a seguinte mensagem de erro:

javax.sound.midi.MidiUnavailableException: Can not open line
    at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1132)
    at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1036)
    ...
Caused by: java.lang.IllegalArgumentException: No line matching interface
        SourceDataLine supporting format PCM_SIGNED 44100.0 Hz,
        16 bit, stereo, 4 bytes/frame, little-endian is supported.
    at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476)
    at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604)
    at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:1066)
    ... 35 more

Como as mensagens mencionam um sintetizador suave e linhas pcm, espero que a falta de algum daemon midi não seja o problema aqui. Tanto quanto eu posso dizer, os módulos do kernel alsa são carregados, incluindo snd_hda_intel , snd_pcm , snd_seq_midi entre outros. Eu também incluí o alsa-base e alsa-utils pacotes na minha instalação. alsa-mixer parece bom, usando "HDA Intel PCH" como seu dispositivo padrão.

Quais outros pacotes, definições de configuração ou inicializações do daemon o java requer para fazer com que sua saída de som funcione?

    
por MvG 14.11.2012 / 17:30

1 resposta

2

Eu mesmo resolvi isso. Usando strace (eu amo essa ferramenta!), Descobri que o java tenta acessar vários dispositivos de controle de som alsa. A maioria deles não existe ( ENOENT ), mas o primeiro e o primeiro dão ( EPERM ) indicando permissões insuficientes.

A partir daí, a correção ficou óbvia: o dispositivo em questão pertence ao grupo audio , mas o usuário que está executando o applet java em questão não. Adicioná-lo a esse grupo fez com que a mensagem de erro desaparecesse.

Eu ainda não estou ouvindo nenhum som, mas isso pode ser devido a algum outro problema, localizado dentro do próprio applet.

    
por MvG 14.11.2012 / 18:22