/*
Java Media APIs: Cross-Platform Imaging, Media and Visualization
Alejandro Terrazas
Sams, Published November 2002,
ISBN 0672320940
*/
import javax.media.*;
import javax.media.format.*;
import javax.media.protocol.*;
public class DoAudioCapture {
public static void main(String[] args) {
Location2Location capture;
CaptureDeviceInfo audioDevice;
MediaLocator audioLocation;
MediaLocator destination;
audioDevice = CaptureDeviceManager.getDevice("DirectSoundCapture");
audioLocation = audioDevice.getLocator();
Format[] format = new Format[1];
format[0] = new AudioFormat(AudioFormat.LINEAR);
ContentDescriptor container = new ContentDescriptor(
FileTypeDescriptor.WAVE);
destination = new MediaLocator(
"file://d:\\jmf\\book\\media\\capturedSound.wav");
capture = new Location2Location(audioLocation, destination, format,
container, 1.0);
System.out.println("Started recording...");
capture.setStopTime(new Time(10.0));
int waited = capture.transfer(35000);
int state = capture.getState();
System.out.println("Waited " + waited + " milliseconds. State now "
+ state);
waited /= 1000;
while (state != Location2Location.FINISHED
&& state != Location2Location.FAILED) {
try {
Thread.sleep(10000);
} catch (InterruptedException ie) {
}
System.out.println("Waited another 10 seconds, state = "
+ capture.getState());
waited += 10;
}
System.out.println("Waited a total of " + waited + " seconds");
System.exit(0);
}
}
|