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:

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) {}
Secondo voi è necessario fermare datasink e processor, o posso semplicemente chiudere il datasink e riaprire quello nuovo??

Visto che utilizzo un array di file... sarebbe una soluzione interessante/possibile utilizzare un'array di DataSink?

GRAZIE!!!