1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| public void playVideo() {
CaptureDeviceInfo captureDevice = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
//
MediaLocator mediaLocator = captureDevice.getLocator();
try {
//Prend la dataSource
ds = Manager.createDataSource(mediaLocator);
// Fait la connection avec la date source
ds.connect();
System.out.println("ds.connect");
//Crée le processeur de la data source
proc = Manager.createProcessor(ds);
proc.realize();
while (proc.getState() != proc.Realized) {
attend(10);
}
// lie la data source du processeur
dataOriginal = proc.getDataOutput();
// démarre le processeur
proc.start();
while (proc.getState() != proc.Started) {
attend(10);
}
// fait un clone de la data source du processeur pour l'affichage
dataCloned = Manager.createCloneableDataSource(dataOriginal);
// crée un player avec la data source clonée
player = Manager.createPlayer(dataCloned);
System.out.println("player cree");
player.realize();
while (player.getState() != player.Realized) {
attend(10);
}
System.out.println("player.realized");
// démarrage de la lecture
player.start();
System.out.println("player.start");
while (player.getState() != player.Started) {
attend(10);
}
System.out.println("player started");
} catch (IOException ex) {
Logger.getLogger(FluxVideo.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoProcessorException ex) {
Logger.getLogger(FluxVideo.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoDataSourceException ex) {
Logger.getLogger(FluxVideo.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoPlayerException ex) {
Logger.getLogger(FluxVideo.class.getName()).log(Level.SEVERE, null, ex);
}
} |
Partager