DoAudioCapture.java Source code

Java tutorial

Introduction

Here is the source code for DoAudioCapture.java

Source

/*
    
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);
    }
}