seguinte, preciso setar uma lista de vídeos para o jmf…
ai qndo termina de tocar um video, ele troca pro proximo da lista…
Qndo chegar no final da lista, ele volta pra o primeiro…
Alguem tem uma ideia de como fazer isso…
tipow no meu código, eu jah peguei a duração do video e comparar com a posição atual do video…
ai jah sei qndo um termina… .o problema eh q eu naum consigo setar outro video pra tocar…
Bom dia galera… ngn sabe como faço pra setar uma lista de videos para jmf???
ou pelo menos trocar o vídeo em tempo de execução?!?!
Att,
Rafael Souza e Silva.
mamangava
Ae galera, dp de muita pesquisa consegui axar esse exemplo de trocar video no jmf…
Então é isso…
Abraçosss
packagejmf;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Component;importjava.awt.Container;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Scanner;importjavax.media.ControllerEvent;importjavax.media.ControllerListener;importjavax.media.EndOfMediaEvent;importjavax.media.Manager;importjavax.media.MediaLocator;importjavax.media.Player;importjavax.media.RealizeCompleteEvent;importjavax.media.Time;importjavax.swing.JFrame;publicclassNewListPlayerextendsJFrame{privatePlayerplayer=null;privateArrayList<Player>players=newArrayList<Player>();privateArrayList<String>filelist=newArrayList<String>();privateStringpath="C:/";privateintplayingIndex=-1;publicintlungime;publicintlatime;EventHandlerhandler=newEventHandler();publicNewListPlayer(intlung,intlat){this.addWindowListener(newWindowAdapter(){@OverridepublicvoidwindowClosing(WindowEvente){stop();System.exit(0);}});lungime=lung;latime=lat;try{readList();}catch(FileNotFoundExceptionex){System.out.println(ex);}catch(IOExceptionex){System.out.println(ex);}getContentPane().setBackground(Color.black);playNextInList();setSize(lungime,latime);setVisible(true);}// instead of opening just checking for readabilityprivatebooleancheckFile(Stringpath){Filefile=newFile(path);booleanret=false;try{ret=file.canRead();file=null;returnret;}catch(Exceptione){file=null;System.out.println("File cannot be read");returnfalse;}}//this is very important method, extracts player from list for current locator,//if player is already present in the list. Otherwise creates new player for the locator// and adds to the listprivatebooleanPlayFile(){try{player=players.get(playingIndex);player.setMediaTime(newTime(0));player.start();updatePlayer();}catch(Exceptionex1){try{player=Manager.createPlayer(newMediaLocator(filelist.get(playingIndex)));player.addControllerListener(handler);players.add(player);player.start();}catch(Exceptionex2){ex2.getStackTrace();returnfalse;}}returntrue;}//this method is called from controller event handler as well as playFile method//used for adding visual and control componentspublicvoidupdatePlayer(){Containerc=getContentPane();// load Visual and Control components if they existComponentvisualComponent=player.getVisualComponent();if(visualComponent!=null){c.add(visualComponent,BorderLayout.CENTER);}ComponentcontrolsComponent=player.getControlPanelComponent();if(controlsComponent!=null){c.add(controlsComponent,BorderLayout.SOUTH);}c.doLayout();}// same method used Scanner insteadprivatevoidreadList()throwsFileNotFoundException,IOException{Stringstr="";FileInputStreamfstream=newFileInputStream(path+"lista.txt");Scannerscan=newScanner(fstream);filelist.clear();while(scan.hasNext()){if(checkFile(str=scan.nextLine())){//add "file:" if you don't already have this in the playlist file locatorsfilelist.add("file:"+str);}}fstream.close();scan.close();}privatevoidplayNextInList(){playingIndex++;if(playingIndex==filelist.size()){playingIndex=0;}if(!PlayFile()){playNextInList();}}//added this method for closing all players at window closingvoidstop(){for(Playerp:players){p.stop();p.close();}}publicstaticvoidmain(Stringargs[]){newNewListPlayer(1280,1024);}privateclassEventHandlerimplementsControllerListener{publicvoidcontrollerUpdate(ControllerEvente){if(einstanceofRealizeCompleteEvent){updatePlayer();}if(einstanceofEndOfMediaEvent){if(player.getVisualComponent()!=null){getContentPane().remove(player.getVisualComponent());}if(player.getControlPanelComponent()!=null){getContentPane().remove(player.getControlPanelComponent());}player.stop();playNextInList();}}}}