Lista urządzeń w JMF

Java Media Framework dostarcza szereg funkcji do pobrania aktywnych urządzeń przetwarzania video i audio w systemie. Standardowym podejściem do tego zadania jest wywołanie metody z klasy CaptureDeviceManager:

Vector devList = CaptureDeviceManager.getDeviceList(null);

W zmiennej devList dostajemy wszystkie urządzenia zainstalowane w systemie służące do przechwytywania video/audio. Instrukcja ta działa w systemach WindowsXP i Linux. Pod Vistą (i prawdopodobnie 7) oraz gdyby nie zadziałała powyższa metoda możemy użyć konstrukcji podobnej do tej:

for(int i = 0; i < 10; i++) { //10 urządzeńmjhjsjua
try {
String name = VFWCapture.capGetDriverDescriptionName(i); //pobieranie nazwy dla drivera
if(name!=null && !name.equals("")) {
CaptureDeviceInfo cdfi = VFWSourceStream.autoDetect(i);
if(cdfi!=null) {
if(devList==null) {
devList = new Vector();
}
devList.addElement(cdfi);
}
}
} catch(Exception e) {
System.out.println("Error: "+e.getMessage());
}
}

To jest przykład dla listy 10 urządzeń. W taki sposób w zmiennej devList otrzymujemy również listę urządzeń zainstalowanych w systemie. Metoda z wiadomych względów nie działa pod Linuxem.