mi pare di capire che tu stia usando JMF, ti consiglio di spulciare il manuale perchè è un po difficile da usare soprattutto se non si sa dove mettere le mani...
La prima cosa che ti consiglio è di usare un processor al posto di un player perchè è più configurabile.
Poi con questo codice vedi tutti i dispositivi di cattura disponibili
codice:
import java.io.*;
import java.util.Vector;
import javax.media.*;
import javax.media.format.*;


public class Devicew {

public static void main(String [] args) {

Vector devices = CaptureDeviceManager.getDeviceList(null);

System.out.println("Number of capture devices: " + devices.size());
for (int n = 0; n < devices.size(); n++) {
CaptureDeviceInfo info = (CaptureDeviceInfo) devices.elementAt(n);
System.out.println("we found something" + n);
System.out.println(info.toString());
}
}
}
e questo esempio ti mostra come creare il processor per acquisire il video dal dispositio di acquisizione
codice:
import javax.media.*;
import javax.media.util.*;
import javax.media.format.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.control.*;

class testing extends JFrame implements ControllerListener,ActionListener
{
//Variables for gui
public JButton play=new JButton("Play");
public JButton stop=new JButton("Stop");
public JPanel p1=new JPanel();
public JPanel p2=new JPanel();
Container c;
//Variables for videocapturing
boolean stateTransitionOK = true;
Object waitSync = new Object();
Processor p;

///Variables required to store the movie
DataSink sink;
MediaLocator dest = new MediaLocator("save_video.wav");
///methods
public testing()
{
super("Video Capture Demo");
setupvideocapture();
setupgui();
}

public void setupgui()
{
c.add(play);
c.add(stop);
addWindowListener(new WindowHandler());
stop.addActionListener(this);
play.addActionListener(this);
setSize(350,350);
setVisible(true);
show();
}

public void actionPerformed(ActionEvent ae)
{
String str;
str=ae.getActionCommand();
if(str=="Play")
{
try
{
//Before starting capturing store the movie to the HDD
p.start();
sink = Manager.createDataSink(p.getDataOutput(), dest); 
sink.open();
sink.start();
}
catch(Exception e)
{

}
}
else if(str=="Stop")
{ 
try
{
// sink.stop();
p.stop();
}
catch(Exception e)
{
}
}
}

public void setupvideocapture()
{
c=getContentPane();
c.setLayout(new FlowLayout());
try
{
p = Manager.createProcessor(new MediaLocator("vfw://0"));
p.addControllerListener(this);
p.configure();
waitForState(p.Configured);
p.setContentDescriptor(null);
p.prefetch();
waitForState(p.Prefetched);
c.add(p.getVisualComponent());

///Intializing the saving procedure
}
catch(Exception e)
{
System.out.println(e);
}
}
public void controllerUpdate(ControllerEvent evt)
{
if (evt instanceof ConfigureCompleteEvent || evt instanceof RealizeCompleteEvent || evt instanceof PrefetchCompleteEvent)
{
synchronized (waitSync)
{
stateTransitionOK = true;
waitSync.notifyAll();
}
}
else if (evt instanceof ResourceUnavailableEvent)
{
synchronized (waitSync)
{
System.out.println("ResourceUnavailable");
stateTransitionOK = false;
waitSync.notifyAll();
}
}
else if (evt instanceof EndOfMediaEvent)
{
p.close();
System.exit(0);
}
}

boolean waitForState(int state)
{
synchronized (waitSync)
{
try
{
while (p.getState() != state && stateTransitionOK)
waitSync.wait();
}
catch (Exception e) {}
}
return stateTransitionOK;
}

//Entry point
public static void main(String args[])
{
testing t=new testing();
}
}

class WindowHandler extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}