Используйте выходы ALSA PCM через Java SoundSystem

У меня есть звуковая карта с несколькими выходами, и я использую ALSA, чтобы отобразить их на 2 отдельных стереоканала. Конфигурация работает нормально и позволяет мне, например, с тестом динамика воспроизводить на них аудио.

Теперь я хочу использовать эти 2 стерео выхода в программе Java, используя AudioSystem API. Тем не менее, стерео1 и стерео2 не отображаются с помощью MixerInfo.

Я не очень понимаю, как Java решает, какие "устройства" выставлять, используя AudioSystem API. В настоящее время я тестирую это в системе Ubuntu 11.10.

Это используемый asound.conf:

#/etc/asound.conf
pcm_slave.fourchannels {
        pcm "hw:0,0"          
        channels 4
}
pcm.stereo1 {
        type plug
        slave.pcm {
                type dshare
                ipc_key 87882222
                slave fourchannels
                bindings [ 0 1 ]
        }
}
pcm.stereo2 {
        type plug
        slave.pcm {
                type dshare
                ipc_key 87882222
                slave fourchannels
                bindings [ 2 3 ]
        }
}

Это код, который я использую, чтобы показать доступные входы и выходы:

Mixer.Info[] mixers = AudioSystem.getMixerInfo();
for (Mixer.Info mixerInfo : mixers) {
    System.out.println("Found Mixer: " + mixerInfo);
    Mixer m = AudioSystem.getMixer(mixerInfo);

    Line.Info[] sourceLines = m.getSourceLineInfo();
    for (Line.Info li : sourceLines) {
        System.out.println("    Found source line: " + li);
        try {
            m.open();
        } catch (LineUnavailableException e) {
            System.out.println("        Line unavailable.");
        }
    }

    Line.Info[] targetLines = m.getTargetLineInfo();
    for (Line.Info li : targetLines) {
        System.out.println("    Found source line: " + li);
        try {
            m.open();
        } catch (LineUnavailableException e) {
            System.out.println("        Line unavailable.");
        }
    }
}

1 ответ

Решение

Ответ - нет. Java не в состоянии перечислить определенные пользователем ALSA pcms, поскольку она предоставляет только аппаратные устройства и устройство "по умолчанию".

Получил информацию от разработчика ALSA здесь: http://www.spinics.net/linux/fedora/alsa-user/msg10796.html

Другие вопросы по тегам