Как захватить звук в Java? - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь захватить звук ПК.Мне удалось запечатлеть звук, который поступает в микрофон через TargetDataLine, но я не могу найти способ запечатлеть звук, который выходит из динамиков.

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

1 Ответ

0 голосов
/ 02 декабря 2018

Хотя ваш вопрос на самом деле не соответствует «правилам», вот фрагмент кода:

private byte[] record() throws LineUnavailableException {
    AudioFormat format = AudioUtil.getAudioFormat(audioConf);
    DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);

    // Checks if system supports the data line
    if (!AudioSystem.isLineSupported(info)) {
        LOGGER.error("Line not supported");
        System.exit(0);
    }

    microphone = (TargetDataLine) AudioSystem.getLine(info);
    microphone.open(format);
    microphone.start();

    LOGGER.info("Listening, tap enter to stop ...");

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    int numBytesRead;
    byte[] data = new byte[microphone.getBufferSize() / 5];

    // Begin audio capture.
    microphone.start();

    // Here, stopped is a global boolean set by another thread.
    while (!stopped) {
        // Read the next chunk of data from the TargetDataLine.
        numBytesRead = microphone.read(data, 0, data.length);
        // Save this chunk of data.
        byteArrayOutputStream.write(data, 0, numBytesRead);
    }

    return byteArrayOutputStream.toByteArray();
}

Получите дополнительную информацию здесь: https://www.programcreek.com/java-api-examples/?class=javax.sound.sampled.TargetDataLine&method=read

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...