The Source for Java Technology Collaboration


Home | Help | Changes | Index | Search | Go

CaptureDeviceManager Sample Program

@author captfoss

The following JMF utility program from the JMF Quickstart Guide will iterate through all of the supported media formats and display any capture devices on the system that support capturing in that format.


import java.util.Vector;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.format.AudioFormat;
import javax.media.format.VideoFormat;
 
public class CaptureDeviceFinder {
 
    static String audioformats[] = {
        AudioFormat.ALAW,
        AudioFormat.DOLBYAC3,
        AudioFormat.DVI,
        AudioFormat.DVI_RTP,
        AudioFormat.G723,
        AudioFormat.G723_RTP,
        AudioFormat.G728,
        AudioFormat.G728_RTP,
        AudioFormat.G729,
        AudioFormat.G729A,
        AudioFormat.G729A_RTP,
        AudioFormat.G729_RTP,
        AudioFormat.GSM,
        AudioFormat.GSM_MS,
        AudioFormat.GSM_RTP,
        AudioFormat.IMA4,
        AudioFormat.IMA4_MS,
        AudioFormat.LINEAR,
        AudioFormat.MAC3,
        AudioFormat.MAC6,
        AudioFormat.MPEG,
        AudioFormat.MPEGLAYER3,
        AudioFormat.MPEG_RTP,
        AudioFormat.MSADPCM,
        AudioFormat.MSNAUDIO,
        AudioFormat.MSRT24,
        AudioFormat.TRUESPEECH,
        AudioFormat.ULAW,
        AudioFormat.ULAW_RTP,
        AudioFormat.VOXWAREAC10,
        AudioFormat.VOXWAREAC16,
        AudioFormat.VOXWAREAC20,
        AudioFormat.VOXWAREAC8,
        AudioFormat.VOXWAREMETASOUND,
        AudioFormat.VOXWAREMETAVOICE,
        AudioFormat.VOXWARERT29H,
        AudioFormat.VOXWARETQ40,
        AudioFormat.VOXWARETQ60,
        AudioFormat.VOXWAREVR12,
        AudioFormat.VOXWAREVR18
    };
    
    static String videoformats[] = {
        VideoFormat.CINEPAK,
        VideoFormat.H261,
        VideoFormat.H261_RTP,
        VideoFormat.H263,
        VideoFormat.H263_1998_RTP,
        VideoFormat.H263_RTP,
        VideoFormat.INDEO32,
        VideoFormat.INDEO41,
        VideoFormat.INDEO50,
        VideoFormat.IRGB,
        VideoFormat.JPEG,
        VideoFormat.JPEG_RTP,
        VideoFormat.MJPEGA,
        VideoFormat.MJPEGB,
        VideoFormat.MJPG,
        VideoFormat.MPEG,
        VideoFormat.MPEG_RTP,
        VideoFormat.RGB,
        VideoFormat.RLE,
        VideoFormat.RPZA,
        VideoFormat.SMC,
        VideoFormat.YUV
        };
    
    public static void main(String args[]) {
 
        /* Audio capture devices */
        System.out.println("CAPTURE AUDIO FORMATS:");
        for (String format : audioformats) {
            System.out.println("\tFormat: "+format);
            Vector<CaptureDeviceInfo> devices =  CaptureDeviceManager.getDeviceList(new AudioFormat(format));
            
            if (devices.isEmpty())
                System.out.println("\t\tNO CAPTURE DEVICES");
            for (CaptureDeviceInfo device : devices) {
                System.out.println("\t\t"+device.getName());
            }
        }
 
        
        /* Video capture devices */
        System.out.println("CAPTURE VIDEO FORMATS:");
        for (String format : videoformats) {
            System.out.println("\tFormat: "+format);
            Vector<CaptureDeviceInfo> devices =  CaptureDeviceManager.getDeviceList(new VideoFormat(format));
            
            if (devices.isEmpty())
                System.out.println("\t\tNO CAPTURE DEVICES");
            for (CaptureDeviceInfo device : devices) {
                System.out.println("\t\t"+device.getName());
            }
        }
    }
}

Topic CaptureDeviceManagerSampleProgram . { Edit | Ref-By | Printable | Diffs r2 < r1 | More }
 XML java.net RSS

Revision r2 - 27 Aug 2009 - 17:00:31 - Main.captfoss
Parents: JavaAudio > JMF > JMFQuickstartGuide