import javax.media.*;
import java.io.IOException;
public class AudioCaptureAndPlayback {
public static void main(String[] args) throws IOException, NoDataSourceException, NoProcessorException, CannotRealizeException,
InterruptedException {
CaptureDeviceInfo audioDevice = CaptureDeviceManager.getDevice("javasound://");
MediaLocator locator = audioDevice.getLocator();
DataSource dataSource = Manager.createDataSource(locator);
Processor processor = Manager.createProcessor(dataSource);
processor.configure();
processor.realize();
DataSink dataSink = Manager.createDataSink(processor.getDataOutput(), new MediaLocator("file://output.wav"));
dataSink.open();
dataSink.start();
processor.start();
System.out.println("Recording audio...");
processor.stop();
dataSink.stop();
System.out.println("Audio recording complete!");
Player player = Manager.createRealizedPlayer(new MediaLocator("file://output.wav"));
player.start();
System.out.println("Playing recorded audio...");
Thread.sleep(5000);
player.stop();
player.deallocate();
System.out.println("Audio playback complete!");
}
}