package cameravlctest;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.image.BufferedImage;
|
import java.util.concurrent.CompletableFuture;
|
import java.util.logging.Level;
|
import java.util.logging.Logger;
|
import javax.swing.ImageIcon;
|
import javax.swing.JLabel;
|
import javax.swing.JPanel;
|
import javax.swing.plaf.basic.BasicComboBoxRenderer;
|
import uk.co.caprica.vlcj.player.base.MediaPlayer;
|
import uk.co.caprica.vlcj.player.base.MediaPlayerEventAdapter;
|
import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;
|
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
|
import uk.co.caprica.vlcj.player.embedded.videosurface.ComponentVideoSurface;
|
|
public class Video extends JPanel
|
{
|
private EmbeddedMediaPlayer embeddedMediaPlayer = null;
|
private ComponentVideoSurface videoSurface = null;
|
private MyMediaPlayerEventAdapter myMediaPlayerEventAdapter = null;
|
private JPanel panel = null;
|
private EmbeddedMediaPlayerComponent mediaPlayer;
|
|
public Video()
|
{
|
try
|
{
|
this.videoSurface = CameraVLCTest.mediaPlayerFactory.videoSurfaces().newVideoSurface(this);
|
this.embeddedMediaPlayer = CameraVLCTest.mediaPlayerFactory.mediaPlayers().newEmbeddedMediaPlayer();
|
this.embeddedMediaPlayer.videoSurface().set(videoSurface);
|
this.embeddedMediaPlayer.fullScreen().set(true);
|
this.panel = new JPanel();
|
this.panel.setBackground(Color.black);
|
this.panel.setLayout(new BorderLayout());
|
|
embeddedMediaPlayer = CameraVLCTest.mediaPlayerFactory.mediaPlayers().newEmbeddedMediaPlayer();
|
embeddedMediaPlayer.videoSurface().set(this.videoSurface);
|
|
this.myMediaPlayerEventAdapter = new MyMediaPlayerEventAdapter();
|
// this.embeddedMediaPlayer = CameraVLCTest.mediaPlayerFactory.mediaPlayers().newEmbeddedMediaPlayer();
|
// this.embeddedMediaPlayer.events().addMediaPlayerEventListener(myMediaPlayerEventAdapter);
|
//this.embeddedMediaPlayer.media().prepare(mrl);
|
// this.embeddedMediaPlayer.media().play("rtsp://admin:Aluvisa1@172.16.11.236/", new String[]{"dummy","-dummy","--dummy"});
|
|
|
mediaPlayer = new EmbeddedMediaPlayerComponent();
|
mediaPlayer.mediaPlayer().events().addMediaPlayerEventListener(myMediaPlayerEventAdapter);
|
mediaPlayer.mediaPlayer().fullScreen().set(true);
|
|
this.setLayout(new BorderLayout());
|
this.add(mediaPlayer,BorderLayout.CENTER);
|
|
} catch (Exception exception)
|
{
|
exception.printStackTrace();
|
}
|
}
|
|
public void play(String mrl)
|
{
|
mediaPlayer.mediaPlayer().media().play("rtsp://admin:Aluvisa1@172.16.11.236/");
|
loadSnapshot();
|
}
|
|
public void loadSnapshot()
|
{
|
CompletableFuture.runAsync(() -> {
|
try
|
{
|
Thread.sleep(10 * 1000);
|
} catch (InterruptedException ex)
|
{
|
Logger.getLogger(Video.class.getName()).log(Level.SEVERE, null, ex);
|
}
|
JLabel labelSnapshot = new JLabel();
|
{
|
labelSnapshot.setIcon(new ImageIcon(mediaPlayer.mediaPlayer().snapshots().get()));
|
}
|
this.removeAll();
|
this.revalidate();
|
|
|
this.add(labelSnapshot, BorderLayout.CENTER);
|
});
|
}
|
|
private class MyMediaPlayerEventAdapter extends MediaPlayerEventAdapter
|
{
|
@Override
|
public void opening(MediaPlayer mp)
|
{
|
System.out.println("Opening");
|
}
|
|
|
@Override
|
public void playing(MediaPlayer mp)
|
{
|
System.out.println("Playing");
|
}
|
|
@Override
|
public void paused(MediaPlayer mp)
|
{
|
System.out.println("Paused");
|
}
|
|
@Override
|
public void stopped(MediaPlayer mp)
|
{
|
System.out.println("Paused");
|
}
|
|
@Override
|
public void finished(MediaPlayer mp)
|
{
|
System.out.println("Paused");
|
}
|
|
@Override
|
public void error(MediaPlayer mp)
|
{
|
System.out.println("Error");
|
}
|
|
@Override
|
public void snapshotTaken(MediaPlayer mediaPlayer, String filename)
|
{
|
System.out.println("Snapshot taken");
|
}
|
}
|
|
|
}
|