我想在固定大小的JFrame中播放视频(mp4)。我该怎么做?是否有任何教程或文档?
答案 0 :(得分:1)
“固定大小(1)JFrame”很容易,或者至少它应该是。你有特定的问题吗? (我问,因为看起来很奇怪你应该提一下。)
至于对MP4的支持,JMF将无法处理。您最好的选择是看看Google为java+mp4投入的内容。在查看了一些排名靠前的热门歌曲之后,看来这些产品并不是很好。
MP4是不可改变的要求吗? JMF可以很好地处理许多其他更简单(较旧)的格式。
如果在标准媒体播放器中打开MP4并非不可能 - 那就像以下一样简单:
Desktop.getDesktop().open(new File("the.mp4"));
(1)作为最终用户,我不得不评论我讨厌某人将视频内容传送到我无法调整大小的桌面。这是我的(dang)桌面 - 我应该可以选择视频覆盖的内容!
答案 1 :(得分:1)
JavaFX小部件MediaView能够呈现MP4文件。您可以像这样http://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm在Swing中嵌入JavaFX,然后就可以像这样使用MediaView http://docs.oracle.com/javafx/2/media/simpleplayer.htm
答案 2 :(得分:1)
我猜您可以将视频转换为.gif文件,然后从该视频中获取音频并在后台播放,这可能会降低质量,但对于简单的事情,它应该可以正常工作。
`import java.io.File;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Main {
public static void audio() {
try {
File file = new File("audio.wav");
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(file));
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.start();
} catch (Exception e) {
System.err.println("Put the music.wav file in the sound folder if you want to play background music, only optional!");
}
}
private static String arg;
public static void main(String[] args){
arg = "background.gif";
JFrame f = new JFrame();
JPanel p = new JPanel();
JLabel l = new JLabel();
ImageIcon icon = new ImageIcon(arg);
f.setSize(480, 360);
f.setVisible(true);
l.setIcon(icon);
p.add(l);
f.getContentPane().add(p);
f.setLocationRelativeTo(null);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
audio();
}
}
https://www.mediafire.com/?18n4iluk9hwitlb Audio.wav
http://www.mediafire.com/view/jx7vogxzsbor0j4/background.gif Background.gif
答案 3 :(得分:0)
我认为你已经使用了一个特殊的框架来做到这一点。例如,您可以使用Java Media Framework您可以在oracle主页上下载它。