-import org.videolan.jvlc.AudioIntf;
+import org.videolan.jvlc.Audio;
import org.videolan.jvlc.JVLC;
+import org.videolan.jvlc.MediaDescriptor;
+import org.videolan.jvlc.MediaInstance;
import org.videolan.jvlc.VLCException;
+import org.videolan.jvlc.Video;
+import org.videolan.jvlc.event.MediaInstanceListener;
-public class VLCExample
+public class VLCExample
{
- public static void main( String[] args )
+ public static void main(String[] args) throws InterruptedException
{
- boolean videoInput = false;
- JVLC jvlc = new JVLC(args);
- try {
- //jvlc.playlist.add("file://" + System.getProperty( "user.dir" ) + "/a.avi", "a.avi");
- jvlc.playlist.add("file:///home/little/a.avi", "a.avi");
- jvlc.playlist.add("file://" + System.getProperty( "user.dir" ) + "/a.mp3", "a.mp3");
- jvlc.playlist.play( -1 , null );
- } catch (VLCException e) {
- e.printStackTrace();
+ System.out.println("== Starting VLCExample ==");
+ if (args.length == 0)
+ {
+ System.out.print("Creating a JVLC instance without args");
}
- while (! jvlc.isInputPlaying()) ;
- while (! jvlc.hasVout() );
-
-
-
- // testing vout functionalities
+ else
+ {
+ System.out.println("Creating a JVLC instance with args: ");
+ for (int i = 0; i < args.length; i++)
+ {
+ System.out.println(i + ") " + args[i]);
+ }
+ }
+ JVLC jvlc = new JVLC(args);
+ System.out.println("... done.");
- try {
- Thread.sleep(2500);
- if (jvlc.hasVout()) videoInput = true;
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ MediaDescriptor mediaDescriptor = new MediaDescriptor(jvlc, "/home/carone/apps/a.avi");
+ MediaInstance mediaInstance = mediaDescriptor.getMediaInstance();
- if (videoInput) {
- try {
- System.out.print(jvlc.video.getWidth());
- System.out.print("x");
- System.out.println(jvlc.video.getHeight());
- } catch (VLCException e) {
- e.printStackTrace();
- }
- }
- try
+ mediaInstance.addListener(new MediaInstanceListener()
{
- if (videoInput) {
- System.out.print("Fullscreen... ");
- jvlc.video.setFullscreen(true);
- Thread.sleep(3000);
- System.out.println("real size.");
- jvlc.video.setFullscreen(false);
- System.out.print("Taking snapshot... ");
- jvlc.video.getSnapshot( System.getProperty( "user.dir" ) + "/snap.png");
- System.out.println("taken. (see " + System.getProperty( "user.dir" ) + "/snap.png )");
- Thread.sleep(2000);
- System.out.println("Resizing to 300x300");
- jvlc.video.setSize(300, 300);
-
- }
- System.out.print("Muting...");
- jvlc.audio.setMute(true);
- Thread.sleep(3000);
- System.out.println("unmuting.");
- jvlc.audio.setMute(false);
- Thread.sleep(3000);
- System.out.println("Volume is: " + jvlc.audio.getVolume());
- System.out.print("Setting volume to 150... ");
- jvlc.audio.setVolume(150);
- System.out.println("done");
-// System.out.println("Audio channel info: " + jvlc.audio.getChannel());
-// System.out.println("Audio track info: " + jvlc.audio.getTrack());
-// System.out.print("Setting left channel... ");
-// jvlc.audio.setChannel("left");
-// System.out.print("done.");
-// Thread.sleep(3000);
-// System.out.print("Setting right channel... ");
-// jvlc.audio.setChannel(AudioIntf.RIGHT_CHANNEL);
-// System.out.print("done.");
-// Thread.sleep(3000);
- System.out.println("INPUT INFORMATION");
- System.out.println("-----------------");
- System.out.println("Total length (ms) :\t" + jvlc.input.getLength());
- System.out.println("Input time (ms) :\t" + jvlc.input.getTime());
- System.out.println("Input position [0-1]:\t" + jvlc.input.getPosition());
- if (videoInput)
- System.out.println("Input FPS :\t" + jvlc.input.getFPS());
-
-
- }
-
- catch (Exception e)
+
+ @Override
+ public void endReached(MediaInstance mediaInstance)
+ {
+ System.out.println("Media instance end reached. MRL: " + mediaInstance.getMediaDescriptor().getMrl());
+ }
+
+ @Override
+ public void paused(MediaInstance mediaInstance)
+ {
+ System.out.println("Media instance paused. MRL: " + mediaInstance.getMediaDescriptor().getMrl());
+ }
+
+ @Override
+ public void played(MediaInstance mediaInstance)
+ {
+ System.out.println("Media instance played. MRL: " + mediaInstance.getMediaDescriptor().getMrl());
+ }
+
+ @Override
+ public void positionChanged(MediaInstance mediaInstance)
+ {
+ // TODO Auto-generated method stub
+ }
+
+ @Override
+ public void timeChanged(MediaInstance mediaInstance, long newTime)
+ {
+ System.out.println("new time: " + newTime);
+ }
+ });
+ mediaInstance.play();
+
+ while (!mediaInstance.hasVideoOutput())
{
- System.out.println("Something was wrong. I die :(.");
- jvlc.destroy();
- e.printStackTrace();
- System.exit(0);
+ Thread.sleep(100);
}
-
- System.out.println("Everything fine ;)");
- System.out.println("Playing next item");
- try {
- jvlc.playlist.next();
- } catch (VLCException e) {
- e.printStackTrace();
- }
-
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- jvlc.destroy();
+
+ Video video = new Video(jvlc);
+ System.out.print(video.getWidth(mediaInstance));
+ System.out.print("x");
+ System.out.println(video.getHeight(mediaInstance));
+ System.out.print("Fullscreen... ");
+ video.setFullscreen(mediaInstance, true);
+ Thread.sleep(3000);
+ System.out.println("real size.");
+ video.setFullscreen(mediaInstance, false);
+ System.out.print("Taking snapshot... ");
+ video.getSnapshot(mediaInstance, System.getProperty("user.dir") + "/snap.png", 0, 0);
+ System.out.println("taken. (see " + System.getProperty("user.dir") + "/snap.png )");
+ Thread.sleep(2000);
+ System.out.println("Resizing to 300x300");
+ video.setSize(300, 300);
+
+ System.out.print("Muting...");
+ Audio audio = new Audio(jvlc);
+ audio.setMute(true);
+ Thread.sleep(3000);
+ System.out.println("unmuting.");
+ audio.setMute(false);
+ Thread.sleep(3000);
+ System.out.println("Volume is: " + audio.getVolume());
+ System.out.print("Setting volume to 150... ");
+ audio.setVolume(150);
+ System.out.println("done");
+ System.out.println("== AUDIO INFO ==");
+ System.out.println("Audio track number: " + audio.getTrack(mediaInstance));
+ System.out.println("Audio channel info: " + audio.getChannel());
+ Thread.sleep(3000);
+ System.out.println("MEDIA INSTANCE INFORMATION");
+ System.out.println("--------------------------");
+ System.out.println("Total length (ms) :\t" + mediaInstance.getLength());
+ System.out.println("Input time (ms) :\t" + mediaInstance.getTime());
+ System.out.println("Input position [0-1]:\t" + mediaInstance.getPosition());
+ System.out.println("Input FPS :\t" + mediaInstance.getFPS());
+
+ System.out.println("Everything fine ;)");
return;
}
}
-