gpt4 book ai didi

java - 如何在JPanel上播放mp4视频?

转载 作者:行者123 更新时间:2023-11-30 04:08:14 25 4
gpt4 key购买 nike

我正在使用 Xuggle 库在 JPanel 上播放 mp4 视频,但视频加载需要 3 秒。或者更多。您对如何在 JPanel 或 JLabel 上以正确的方式播放视频有一些建议吗?

这是显示 mp4 视频的好方法吗? VideoCodec 是一种 Xuggle 编解码器。这是有效的,但我有几秒钟的延迟。

public void setVideoName(final String videoName) {
imageAndVideoPanel.removeAll();
final VideoPanel videoPanel = new VideoPanel();
videoPanel.setPreferredSize(Const.Dimensions.VIDEO_SIZE);
videoPanel.setMinimumSize(Const.Dimensions.VIDEO_SIZE);
videoPanel.setMaximumSize(Const.Dimensions.VIDEO_SIZE);
imageAndVideoPanel.add(videoPanel);

new Thread(new Runnable() {
@Override
public void run() {
VideoCodec videoCodec =
new VideoCodec(videoPanel, videoName + TextsDao.getText("videoFilesExtension"));
}
}).start();
}

最佳答案

我找到了解决方案。 VLCJ 库和 EmbeddedMediaPlayer。播放视频/图像的代码很简单:

public class ExamQuestionsLeftPanel extends JPanel {
private EmbeddedMediaPlayerComponent component;
private EmbeddedMediaPlayer player;

...

public ExamQuestionsLeftPanel() {
setUpPanel();
initializeComponents();
}

private void setUpPanel() {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "VLCx86");
component = new EmbeddedMediaPlayerComponent();
player = component.getMediaPlayer();

Border emptyBorder = BorderFactory.createEmptyBorder(10, 10, 10, 10);

setLayout(null);
setBackground(Const.Colors.EXAM_BACKGROUND_COLOR);
setAlignmentX(Component.LEFT_ALIGNMENT);
setBorder(emptyBorder);
}

...

public void setImageName(String imageName) {
player.stop();
player.prepareMedia("media" + File.separator + imageName);
player.parseMedia();
player.play();
}

public void setVideoName(final String videoTitle) {
new Thread(new Runnable() {
@Override
public void run() {
player.stop();
player.prepareMedia("media" + File.separator + videoTitle);
player.parseMedia();
player.play();
}
}).start();
}

关于java - 如何在JPanel上播放mp4视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245494/

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