import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.sound.sampled.*;
public class CaptureFrame
extends JFrame {
protected boolean running;
public CaptureFrame() {
super("Capture Sound Demo");
setDefaultCloseOperation(EXIT_ON_CLOSE);
capture.setEnabled(true);
stop.setEnabled(false);
play.setEnabled(false);
capture.setEnabled(false);
stop.setEnabled(true);
play.setEnabled(false);
captureAudio();
}
};
capture.addActionListener(captureListener);
capture.setEnabled(true);
stop.setEnabled(false);
play.setEnabled(true);
running = false;
}
};
stop.addActionListener(stopListener);
playAudio();
}
};
play.addActionListener(playListener);
}
private void captureAudio() {
try {
line.open(format);
line.start();
int bufferSize = (int)format.getSampleRate()
* format.getFrameSize();
byte buffer[] = new byte[bufferSize];
public void run() {
running = true;
try {
while (running) {
int count =
line.read(buffer, 0, buffer.length);
if (count > 0) {
out.write(buffer, 0, count);
}
}
out.close();
System.
err.
println("I/O problems: " + e
); }
}
};
captureThread.start();
System.
err.
println("Line unavailable: " + e
); }
}
private void playAudio() {
try {
byte audio[] = out.toByteArray();
audio.length / format.getFrameSize());
line.open(format);
line.start();
int bufferSize = (int) format.getSampleRate()
* format.getFrameSize();
byte buffer[] = new byte[bufferSize];
public void run() {
try {
int count;
while ((count = ais.read(
buffer, 0, buffer.length)) != -1) {
if (count > 0) {
line.write(buffer, 0, count);
}
}
line.drain();
line.close();
System.
err.
println("I/O problems: " + e
); }
}
};
playThread.start();
System.
err.
println("Line unavailable: " + e
); }
}
float sampleRate = 8000;
int sampleSizeInBits = 8;
int channels = 1;
boolean signed = true;
boolean bigEndian = true;
sampleSizeInBits, channels, signed, bigEndian);
}
}