Ciao a tutti...
ho un problema che proprio non riesco a risolvere...
Sto realizzando un'applicazione per la gestione dello streaming da webcam tramite JMF e ho riscontrato un problema insolito:
la mia webcam non viene vista dal codice di "autodetect" presente nella mia classe "WebcamCapture", mentre viene correttamente via sia dai programmi di chat (Skype, MSN) sia da JMStudio/JMRegistry stesso!!!
Il codice che uso per l'autodetect è il solito:
codice:
public CaptureDeviceInfo autoDetect() {
//restituisce la lista di tutti i devices disponibili
Vector list = CaptureDeviceManager.getDeviceList(null);
CaptureDeviceInfo devInfo = null;
if (list != null) {
String name;
for (int i = 0; i < list.size(); i++) {
devInfo = (CaptureDeviceInfo) list.elementAt(i);
name = devInfo.getName();
//mi fermo non appena incontro un device di tipo "webcam" per windows
if (name.startsWith("vfw:")) {
break;
}
}
//controllo se ho trovato un device "vfw", nel caso termino qui..
if (devInfo != null && devInfo.getName().startsWith("vfw:")) {
return (devInfo);
} else { //nessun device "vfw" trovato.. con JMF... tento con VFWCapture..
for (int i = 0; i < 10; i++) {
try {
name = VFWCapture.capGetDriverDescriptionName(i);
if (name != null && name.length() > 1) {
devInfo = com.sun.media.protocol.vfw.VFWSourceStream.autoDetect(i);
if (devInfo != null) {
return (devInfo);
}
}
} catch (Exception ioEx) { //non ho trovato nessun device "vfw"
statusBar.setText("Errore nella ricerca della webcam : "+ ioEx.getMessage());
}
}
return (null);
}
} else { //list == null
return (null);
}
}//autoDecect()
Questo codice mi genera un errore nella chiamata "VFWCapture.capGetDriverDescriptionName(i)" dicendo che c'è un errore in VFWCapture.<clinit> alla riga 19..
Il fatto è che lanciando direttamente
codice:
CaptureDeviceManager.getDeviceList(null)
mi torna un Vector contenente nessun elemento e questo è strano visto che JMRegistry mi trova 2 periferiche audio e 1 video (che tra l'altro inizia per "vfw:")
Ribadisco che la mia webcam funziona con JMStudio.. e lo streaming lo vedo correttamente!!
In più lo stesso codice preso e lanciato sul mio portatile con webcam integrata, gira che è una meraviglia... qualcuno saprebbe darmi qualche indicazione??
GRAZIE MILLE!!!!!