mech666
27-08-2009, 11:57
Salve a tutti, sto usando il java media framework....il mio problema è questo:
devo registrare un video ma allo stesso tempo vorrei vedere cosa sto registrando!
So che i dati presi dal processone non possono essere indirizzati contemporaneamente ad un data sink ed un player, quindi ho pensato di clonare il data source in questo modo :
//Descrizione del formato video
Format formats[] = new Format[2];
formats[0] = new AudioFormat(AudioFormat.ULAW);
formats[1] = new VideoFormat(VideoFormat.RGB);
FileTypeDescriptor outputType = new FileTypeDescriptor (FileTypeDescriptor.MSVIDEO);
processor = Manager.createRealizedProcessor(new ProcessorModel(formats,outputType));
//Prendo l'uscita dal processore
DataSource source = processor.getDataOutput();
//La clono per il player
source = Manager.createCloneableDataSource(source);
DataSource clonedSource = ((SourceCloneable)source).createClone();
A questo punto mentre source viene scritta su disco vorrei mandare clonedSource ad un player per visualizzare le immagini che sto acquisendo (ho tolto per semplicità i blocchi che gestiscono le eccezioni!):
dest = new MediaLocator("file://provaAcqu.wmv");
sink = Manager.createDataSink(source, dest);
sink.open();
//Faccio partire la scrittura su file dei dati nel sink,il processore, ed il
//player per l'anteprima del video
sink.start();
processor.start();
//Faccio andare i dati del processore su di un player
player = Manager.createRealizedPlayer(clonedSource);
player.start();
Il programma continua poi prendento il componente visuale del player ed aggiungendolo al Frame.
Ho però questo errore:
javax.media.NoPlayerException: Cannot find a Player for: com.ibm.media.protocol.SuperCloneableDataSource$PushDataSourceSlave@3eca90
at javax.media.Manager.createPlayerForSource(Manager.java:1512)
at javax.media.Manager.createPlayer(Manager.java:500)
at javax.media.Manager.createRealizedPlayer(Manager.java:579)
Ho pensato di provare a cambiare i formati video con cui registrare ma continua a non funzionare!! :muro:
Potete darmi una mano?!?!? Grazie!!! :D
devo registrare un video ma allo stesso tempo vorrei vedere cosa sto registrando!
So che i dati presi dal processone non possono essere indirizzati contemporaneamente ad un data sink ed un player, quindi ho pensato di clonare il data source in questo modo :
//Descrizione del formato video
Format formats[] = new Format[2];
formats[0] = new AudioFormat(AudioFormat.ULAW);
formats[1] = new VideoFormat(VideoFormat.RGB);
FileTypeDescriptor outputType = new FileTypeDescriptor (FileTypeDescriptor.MSVIDEO);
processor = Manager.createRealizedProcessor(new ProcessorModel(formats,outputType));
//Prendo l'uscita dal processore
DataSource source = processor.getDataOutput();
//La clono per il player
source = Manager.createCloneableDataSource(source);
DataSource clonedSource = ((SourceCloneable)source).createClone();
A questo punto mentre source viene scritta su disco vorrei mandare clonedSource ad un player per visualizzare le immagini che sto acquisendo (ho tolto per semplicità i blocchi che gestiscono le eccezioni!):
dest = new MediaLocator("file://provaAcqu.wmv");
sink = Manager.createDataSink(source, dest);
sink.open();
//Faccio partire la scrittura su file dei dati nel sink,il processore, ed il
//player per l'anteprima del video
sink.start();
processor.start();
//Faccio andare i dati del processore su di un player
player = Manager.createRealizedPlayer(clonedSource);
player.start();
Il programma continua poi prendento il componente visuale del player ed aggiungendolo al Frame.
Ho però questo errore:
javax.media.NoPlayerException: Cannot find a Player for: com.ibm.media.protocol.SuperCloneableDataSource$PushDataSourceSlave@3eca90
at javax.media.Manager.createPlayerForSource(Manager.java:1512)
at javax.media.Manager.createPlayer(Manager.java:500)
at javax.media.Manager.createRealizedPlayer(Manager.java:579)
Ho pensato di provare a cambiare i formati video con cui registrare ma continua a non funzionare!! :muro:
Potete darmi una mano?!?!? Grazie!!! :D