本文介绍了如何在JPanel上播放mp4视频?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Xuggle库在JPanel上播放mp4视频,但是视频加载需要3秒钟.或者更多.您对如何以正确的方式在JPanel或JLabel上播放视频有一些建议吗?
I am using the Xuggle library to play mp4 videos on a JPanel but video loading is taking 3 sec. or more. Do you have some advice how to play video on JPanel or JLabel in the right way?
这是显示mp4视频的好方法吗? VideoCodec是Xuggle编解码器.这是可行的,但我要延迟几秒钟.
Is this a good way to show mp4 video? VideoCodec is a Xuggle Codec. This is working but I have a delay of a few seconds.
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.播放视频/图像的代码很简单:
I found a solution. VLCJ library and EmbeddedMediaPlayer. Code to play video/ image is simple:
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();
}
这篇关于如何在JPanel上播放mp4视频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!