繁体   English   中英

如何使用JMF在JFrame上快速启动视频

[英]How to start video quick on a JFrame using JMF

任何人都可以告诉我哪种方法是在JPanel中播放视频的最佳方法。我目前正在为孩子们准备一个学习软件,可以选择播放一些学习视频。视频存储在某个文件夹中。我已经成功完成了这项工作使用JMF,但问题有点慢。虽然视频不是太大(2-4 MB),但要花一些时间才能开始播放视频。我应该怎么做才能使其快速启动,

感谢你

public class MediaPanel extends JPanel
{
public static boolean playing = false;
public static Player mediaPlayer;
public MediaPanel( URL mediaURL )
{
setLayout( new BorderLayout() ); // use a BorderLayout
// Use lightweight components for Swing compatibility

//Component controls = mediaPlayer.getControlPanelComponent();
} // end MediaPanel constructor
public void play(URL mediaURL) throws NoPlayerException, CannotRealizeException,               IOException, IncompatibleSourceException{
Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
System.out.println("sdfdsg");
mediaPlayer = Manager.createRealizedPlayer( mediaURL );
Component video = mediaPlayer.getVisualComponent();
if ( video != null )
add( video);
mediaPlayer.start();
playing=true;
}
public void stop(){
mediaPlayer.stop();
playing = false;
}
public void play_one(){
mediaPlayer.stop();
mediaPlayer.start();
}
}
public class MediaPanel extends JPanel
{
public static boolean playing = false;
public static Player mediaPlayer;
public MediaPanel( URL mediaURL )
{
setLayout( new BorderLayout() ); 

} // end MediaPanel constructor
public void play(URL mediaURL) throws NoPlayerException, CannotRealizeException,     IOException, IncompatibleSourceException{
Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
mediaPlayer = Manager.createRealizedPlayer( mediaURL );
Component video = mediaPlayer.getVisualComponent();
if ( video != null )
add( video);
mediaPlayer.start();
playing=true;
}
public void stop(){
mediaPlayer.stop();
playing = false;
}
public void play_one(){
mediaPlayer.stop();
mediaPlayer.start();
}
}

以及我使用此类的源代码部分。

try {
Home.text.setText("wait..");
if(Home.mediaPanel.playing==true)
Home.mediaPanel.stop();
Home.mediaPanel.play(new     URL("file://C://Users//zubair//workspace//learningKit//"+Home.selected_topic+"//"+Home.sele cted_group+"//v"+k+".flv"));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

吉恩军从石器时代开始。 您有什么理由坚持吗?

我建议使用具有媒体支持(包括视频播放)的JavaFX。 JavaFX是Java 8的一部分,并且还随Java 7一起提供(只是不在默认类路径上)。 您只需几行代码就可以播放受支持的视频格式(* .flv,*。mp4),并且如果可用,它还使用硬件加速。

基本上,您只需要创建MediaMediaPlayerMediaView类:

Media m = new Media(Paths.get("example.flv").toURI().toString());
MediaPlayer mp = new MediaPlayer(m);
MediaView mv = new MediaView(mp);
// Add the mediaview component somewhere to your GUI
// And you're done. You can start playing the video by:
mp.play();

这是一个播放视频的简短完整示例应用程序: http : //www.java2s.com/Code/Java/JavaFX/FullScreenVideoPlayer.htm

Oracle官方教程:

JavaFX Media简介

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM