java - Stream multiple files from folder using vlcj -
public void stream(string folder_path, int port){ file mydir = new file(folder_path); file[] files = mydir.listfiles(); if( mydir.exists() && mydir.isdirectory()){ { system.out.println(files[i]+" ..."); //file myfile = new file(files[i].getpath()); mediaplayer.playmedia(files[i].getpath(), ":sout=#rtp{dst=127.0.0.1,port="+string.valueof(port) +",mux=ts}", ":no-sout-rtp-sap", ":no-sout-standard-sap", ":sout-all", ":sout-keep" ); i++; }while(i< files.length && mediaplayer.ismediaparsed()); } }
how can modify code make vlcj play(stream) next file in folder after current 1 ends?
i tried different methods stops after first file.
if refer vlc sample uk.co.caprica.vlcj.test.list.testmedialistembeddedplayer
vlcj-1.2.0-test.jar
distribution, how done:
/** * example showing how combine media list player embedded media * player. */ public class testmedialistembeddedplayer extends vlcjtest { public static void main(string[] args) throws exception { mediaplayerfactory mediaplayerfactory = new mediaplayerfactory(); canvas canvas = new canvas(); canvas.setbackground(color.black); canvasvideosurface videosurface = mediaplayerfactory.newvideosurface(canvas); embeddedmediaplayer mediaplayer = mediaplayerfactory.newembeddedmediaplayer(); mediaplayer.setvideosurface(videosurface); medialistplayer medialistplayer = mediaplayerfactory.newmedialistplayer(); medialistplayer.addmedialistplayereventlistener(new medialistplayereventadapter() { @override public void nextitem(medialistplayer medialistplayer, libvlc_media_t item, string itemmrl) { system.out.println("nextitem()"); } }); medialistplayer.setmediaplayer(mediaplayer); // <--- important, associate media player media list player jpanel cp = new jpanel(); cp.setbackground(color.black); cp.setlayout(new borderlayout()); cp.add(canvas, borderlayout.center); jframe f = new jframe("vlcj embedded media list player test"); f.seticonimage(new imageicon(testmedialistembeddedplayer.class.getresource("/icons/vlcj-logo.png")).getimage()); f.setcontentpane(cp); f.setsize(800, 600); f.setdefaultcloseoperation(jframe.exit_on_close); f.setvisible(true); medialist medialist = mediaplayerfactory.newmedialist(); string[] options = {}; medialist.addmedia("c:\\documents , settings\\developer\\desktop\\videoplayback1.mp4", options); medialist.addmedia("c:\\documents , settings\\developer\\desktop\\videoplayback2.mp4", options); medialistplayer.setmedialist(medialist); medialistplayer.setmode(medialistplayermode.loop); medialistplayer.play(); // looping purposes of demonstration, ordinarily // not of course for(;;) { thread.sleep(500); mediaplayer.setchapter(3); thread.sleep(5000); medialistplayer.playnext(); } // medialist.release(); // medialistplayer.release(); // mediaplayer.release(); // mediaplayerfactory.release(); } }
Comments
Post a Comment