Salve..
sto realizzando un'applicazione con JMF che cattura il video da una webcam e lo memorizza in più file video.
Ora... la memorizzazione sono riuscita a farla.. collegando un processor ad un datasink che incanala il flusso multimediale in un file.
Ora, ho letto nella documentazione che se voglio cambiare file devo ricreare l'intero DataSink, e questo rende un po' problematica la cosa, in quanto io dovrei cercare di mantenere la sequenzialità del video tra i vari files, senza perdere troppi frame.
Fare questa cosa offline sarebbe "facile" ma purtroppo devo farlo in real-time.
Voi avreste qualche delucidazione migliore?
Vi posto il codice con il quale cambio file... magari qualcuno ha qualche soluzione migliore:
Secondo voi è necessario fermare datasink e processor, o posso semplicemente chiudere il datasink e riaprire quello nuovo??codice:File f = fileArray[counter%60]; MediaLocator dest = new MediaLocator("file://" + f); DataSource vds = processor.getDataOutput(); try{ filewriter.stop(); filewriter.close(); processor.stop(); filewriter = Manager.createDataSink(videoDataSource, dest); filewriter.open(); filewriter.start(); System.out.println("Nuovo datasink aperto!"); processor.start(); } catch (Exception e) {}
Visto che utilizzo un array di file... sarebbe una soluzione interessante/possibile utilizzare un'array di DataSink?
GRAZIE!!!![]()


Rispondi quotando