Reproduz música em várias saídas ALSA via Java

0

Eu tenho uma placa de som surround 7.1 instalada e quero dividir as saídas em 4 saídas estéreo. Isso não é um problema com o ALSA (ou mesmo o PulseAudio), mas não consigo fazer com que o Java Sound System me mostre as saídas estéreo separadamente.

Qual é o truque aqui? É possível simular dispositivos de hardware com o ALSA para que o Java os veja?

Isso é o que o Java vê:

Found Mixer: PulseAudio Mixer, version 0.02
    Found source line: interface SourceDataLine supporting 42 audio formats, and buffers of 0 to 1000000 bytes
        Line unavailable.
    Found source line: interface Clip supporting 42 audio formats, and buffers of 0 to 1000000 bytes
        Line unavailable.
    Found target line: interface TargetDataLine supporting 42 audio formats, and buffers of 0 to 1000000 bytes
        Line unavailable.
Found Mixer: DX [default], version 1.0.21
    Found target line: interface TargetDataLine supporting 84 audio formats, and buffers of at least 32 bytes
Found Mixer: DX [plughw:0,0], version 1.0.21
    Found source line: interface SourceDataLine supporting 96 audio formats, and buffers of at least 32 bytes
    Found source line: interface Clip supporting 96 audio formats, and buffers of at least 32 bytes
    Found target line: interface TargetDataLine supporting 24 audio formats, and buffers of at least 32 bytes
Found Mixer: DX [plughw:0,1], version 1.0.21
    Found source line: interface SourceDataLine supporting 24 audio formats, and buffers of at least 32 bytes
    Found source line: interface Clip supporting 24 audio formats, and buffers of at least 32 bytes
Found Mixer: Port DX [hw:0], version 1.0.21
    Found source line: Mic source port
    Found source line: Aux source port
    Found source line: Analog Input Monitor source port
    Found target line: Master target port
    Found target line: Analog Input Monitor target port

Este é o meu .asoundrc:

pcm_slave.eightchannels {
    pcm "surround71:DX,0"
    channels 8
}
pcm.stereo1 {
    type plughw
    slave.pcm {
        type dshare
        ipc_key 87882222
        slave eightchannels
        bindings [ 2 3 ]
    }
}
pcm.stereo2 {
    type plughw
    slave.pcm {
        type dshare
        ipc_key 87882222
        slave eightchannels
        bindings [ 4 5 ]
    }
}
pcm.stereo3 {
    type plughw
    slave.pcm {
        type dshare
        ipc_key 87882222
        slave eightchannels
        bindings [ 6 7 ]
    }
}
pcm.stereo4 {
    type plughw
    slave.pcm {
        type dshare
        ipc_key 87882222
        slave eightchannels
        bindings [ 0 1 ]
    }
}

A configuração ALSA funciona bem, pois eu posso reproduzir som nas saídas estéreo1 ... 4 com teste de alto-falante -D estéreo1.

Obrigado!

    
por nanoman 22.02.2012 / 11:05

1 resposta

0

A resposta é: não. Java não pode listar os pcms ALSA definidos pelo usuário, pois expõe apenas os dispositivos de hardware e o dispositivo "padrão".

Obteve as informações de um desenvolvedor da ALSA aqui: link

    
por 01.03.2012 / 10:43

Tags