Как получить внешнее устройство ввода звука (микрофоны) из приложения java с помощью AudioSystem - PullRequest
0 голосов
/ 04 августа 2020

Я получаю все встроенные аудиоустройства и список внешних устройств, когда пользователь выбирает любое встроенное устройство ввода звука, запись и воспроизведение звука невозможны, мне нужно только внешнее устройство ввода звука. пожалуйста, дайте мне решение. Спасибо Заранее помогите мне.

public class Recorder {
    TargetDataLine line;
    AudioFormat a = new AudioFormat(16000, 8, 2, true, true);
    BufferedInputStream soundFile;
    Clip clip;
    AudioInputStream stream;

    /*
     * File temp = null; static String temp1 = null;
     */
    static String path = PYSICALPATH;

    public void start(Mixer mixer) {
        try { 
             Line.Info[] lineInfos = mixer.getTargetLineInfo();

             for (Line.Info lineInfo:lineInfos){

                 System.out.println("\t-----"+line);
                 line = (TargetDataLine) mixer.getLine(lineInfo);

                 line.open();
                 line.start();
                 AudioInputStream ais = new AudioInputStream(line);


                File file = new File(path);
                file.getParentFile().mkdirs();
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                AudioSystem.write(ais, AudioFileFormat.Type.WAVE, new File(path.toString() + "RecordAudio.wav"));

                }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Recorder(Mixer mixer) {
        Thread stopper = new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(10 * 1000);
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
                line.stop();
                line.close();
    }
        });
        stopper.start();
        start(mixer);
    }
}


comboBoxForAudioSources = new JComboBox(AudioSystem.getMixerInfo());

Mixer.Info mixerInfo = (Info) comboBoxForAudioSources.getSelectedItem();
Mixer mixer = AudioSystem.getMixer(mixerInfo);
Recorder recorder = new Recorder(mixer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...