Liv*_* As 2 java swing awt vlc vlcj
我使用vlc媒体播放器的vlcj库做了一个视频播放器。
这是我的代码来做到这一点..
public class Player {
public static void main(final String[] args) {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:\\Program Files\\VideoLAN\\VLC");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Player(args);
}
});
}
private Player(String[] args) {
JFrame frame = new JFrame("vlcj Tutorial");
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
Canvas c = new Canvas();
c.setBackground(Color.black);
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(c, BorderLayout.CENTER);
frame.add(p, BorderLayout.CENTER);
EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();
mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c));
frame.setLocation(100, 100);
frame.setSize(1050, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
mediaPlayer.playMedia("D:\\EmbeddedMediaPlayer\\test.3gp");
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用此代码播放视频,但是如何像 vlc 媒体播放器一样在全屏上看到相同的视频?
如何通过鼠标右键应用最大化(全屏)和最小化双击事件?
全屏在不同平台上可能会出现一些问题,因此全屏的实现留给您可以选择或自己实现的策略实现。
碰巧的是,Windows 是全屏问题最多的平台。
在 vlcj 3.0.0+ 中,有一个使用 Win32 本机 API 的新的全屏策略实现。这是在 Windows 上实现全屏的最可靠的方法,因此也是推荐的方法。
您在创建媒体播放器时选择策略实施:
EmbeddedMediaPlayer mediaPlayer =
mediaPlayerFactory.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(frame));
Run Code Online (Sandbox Code Playgroud)
稍后当您想要切换全屏时:
mediaPlayer.toggleFullScreen();
Run Code Online (Sandbox Code Playgroud)
或者:
mediaPlayer.setFullScreen(boolean fullScreen);
Run Code Online (Sandbox Code Playgroud)
如果您想听鼠标点击,那么原则上您所做的就是MouseListener像通常对对象所做的那样添加 a Canvas。
然而,在 Windows 中,检测鼠标点击并不那么简单,您必须在创建媒体播放器时执行此操作:
mediaPlayer.setEnableMouseInputHandling(false);
mediaPlayer.setEnableKeyInputHandling(false);
Run Code Online (Sandbox Code Playgroud)
然后,在您的MouseListener实现中,您可以调用上述全屏方法之一。
另请注意,您必须防止您的mediaPlayer引用被垃圾收集。通常将其声明为类字段而不是堆变量就足够了(就像您在发布的代码中那样)。
您还应该在此处查看示例:
https://github.com/caprica/vlcj/blob/vlcj-3.0.1/src/test/java/uk/co/caprica/vlcj/test/fullscreen
| 归档时间: |
|
| 查看次数: |
8225 次 |
| 最近记录: |