Для записи звука с микрофона в Java, вам потребуется использовать библиотеку Java Sound API. Эта библиотека предоставляет различные классы и методы для управления аудио-данными.
Вот пример кода, который позволяет записывать звук с микрофона:
import javax.sound.sampled.*; public class MicrophoneRecorder { public static void main(String[] args) { // Получение доступных аудио-устройств Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); // Поиск аудио-устройства, отвечающего за микрофон Mixer mixer = null; for (Mixer.Info info : mixerInfo) { mixer = AudioSystem.getMixer(info); Line.Info[] targetLineInfo = mixer.getTargetLineInfo(); if (targetLineInfo.length != 0 && targetLineInfo[0].getLineClass().equals(TargetDataLine.class)) { break; } } // Установка формата аудио-данных AudioFormat audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100, 16, 2, 4, 44100, false); try { // Открытие линии записи TargetDataLine line = (TargetDataLine) mixer.getLine(new DataLine.Info(TargetDataLine.class, audioFormat)); line.open(audioFormat); // Создание аудио-потока AudioInputStream audioInputStream = new AudioInputStream(line); // Начало записи line.start(); // Запись аудио-данных в файл File outputFile = new File("output.wav"); AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, outputFile); // Завершение записи line.stop(); line.close(); } catch (LineUnavailableException | IOException e) { e.printStackTrace(); } } }
В этом примере мы сначала получаем доступные аудио-устройства с помощью метода AudioSystem.getMixerInfo()
. Затем мы ищем аудио-устройство, отвечающее за микрофон, путем проверки типа линии TargetDataLine
у каждого аудио-устройства.
Затем мы устанавливаем формат аудио-данных, в данном случае PCM_SIGNED
с частотой дискретизации 44100 Гц, 16-битной глубиной и двумя каналами.
Далее мы открываем линию TargetDataLine
, создаем AudioInputStream
на основе этой линии, и начинаем запись с помощью line.start()
. Записанные аудио-данные сохраняются в файл типа WAV с помощью AudioSystem.write()
.
В конце мы останавливаем линию и закрываем ее.
Обратите внимание, что для работы этого кода вам понадобится правильно настроенный микрофон и доступ к аудио-устройству на вашей операционной системе.