gpt4 book ai didi

java - vlcj 全屏视频播放器

转载 作者:行者123 更新时间:2023-11-29 03:24:49 27 4
gpt4 key购买 nike

我用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");
}
}

我可以使用此代码播放视频,但如何才能像 vlc 媒体播放器一样全屏观看同一视频?

如何通过鼠标右键在双击事件上应用最大化(全屏)和最小化?

最佳答案

全屏在不同平台上可能会有些问题,所以全屏的实现留给策略实现,你可以选择或自己实现。

碰巧,Windows 是全屏问题最多的平台。

在 vlcj 3.0.0+ 中,有一个使用 Win32 native API 的新全屏策略实现。这是在 Windows 上实现全屏的最可靠的方法,因此也是推荐的方法。

您在创建媒体播放器时选择策略实现:

EmbeddedMediaPlayer mediaPlayer = 
mediaPlayerFactory.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(frame));

稍后当您想要切换全屏时:

mediaPlayer.toggleFullScreen();

或者:

mediaPlayer.setFullScreen(boolean fullScreen);

如果你想听鼠标点击,那么原则上你所做的就是添加一个 MouseListener,就像你通常对 Canvas 对象所做的那样。

但是,对于 Windows,检测鼠标点击并不是那么简单,您必须在创建媒体播放器时执行此操作:

mediaPlayer.setEnableMouseInputHandling(false);
mediaPlayer.setEnableKeyInputHandling(false);

然后在您的 MouseListener 实现中,您可以调用上述全屏方法之一。

另请注意,您必须防止您的mediaPlayer 引用被垃圾回收。通常将其声明为类字段而不是堆变量就足够了(正如您在发布的代码中所做的那样)。

您还应该在这里查看示例:

https://github.com/caprica/vlcj/blob/vlcj-3.0.1/src/test/java/uk/co/caprica/vlcj/test/fullscreen

https://github.com/caprica/vlcj/blob/vlcj-3.0.1/src/test/java/uk/co/caprica/vlcj/test/fullscreen/Win32FullScreenPlayerTest.java

关于java - vlcj 全屏视频播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com