Я пытаюсь сделать то же самое. Я пока не нашел хорошего решения, но могу сказать, что это не помогает, потому что вы пытаетесь получить DataLine от микшера портов. Если и когда я это выясню, я обязательно сообщу.

икhttp://download.oracle.com/javase/tutorial/sound/capturing.html не охватывает, как выбрать микрофон.

Я перечисляю микшеры со следующим кодом

System.out.println("Searching for microphones");
for(Mixer.Info mixerinfo : AudioSystem.getMixerInfo()) {
    mixer = AudioSystem.getMixer(mixerinfo); 

    //System.out.println(mixerinfo.toString());
    if( mixer.isLineSupported(Port.Info.MICROPHONE) ) {
        mixers.add(mixer);
        System.out.println(Integer.toString(mixers.size()) + ": " + mixerinfo.toString());
    }
}

то есть по наличию микрофонного входа. Но затем, имея микшер, я не могу прочитать строку.

Если я используюmixer.getTargetLineInfo()Я получаю массив из одногоInfoкоторый при переходе кmixer.getLine возвращает объект типаcom.sun.media.sound.PortMixer$PortMixerPort, который не выкуплен.

Если я используюmixer.getTargetLines() Я получаю пустой массив.

Если я создам свой собственныйDataLine.Info и передать его в миксерgetLineЯ получаю неподдерживаемое исключение.

Так что делать?

Ответы на вопрос(0)

Ваш ответ на вопрос