很多Java初学者想在制作的Java小程序中插入一段视频或者多媒体,却感到无所适从。因为Java的多媒体涉及到一个叫做Java media framework的API。本文就结合作者完成一次多媒体播放器的制作经历,详细论述Java Media Framework导入以及实现的相关攻略。
需要准备的开发工具(IDE):eclipse-luna
1. 下载JMF API。下载JMF,地址:
http://www.oracle.com/technetwork/java/javase/download-142937.html
点击Download,并保存在任意目录。成功下载后会出现这样一个图标,双击开始安装。
2. 安装JMF:点击 Yes之后会出现这一步,点击Browse选择安装路径。
注意:这里的安装路径跟你Java的安装目录有关。比如笔者Java的安装目录是
D:\Develop Tools\Java,那么JMF的安装目录就是D:\Develop Tools\Java\jdk1.8.0_31。此外,安装过程中会重启电脑,需要注意。重启电脑之后,打开eclipse进行jar文件导入。
3. Jar文件导入:
运行eclipse,找到你的对应需要使用多媒体的Project右击 JAR System Library。
点击 Build Path -> Configure Build Path -> Add External Jars,出现如下对话框:
找到你Java环境的lib文件夹,开始导入。
4. 导入所需Jar。如做多媒体的需要导入 jmf.jar、mediaplayer.jar、 sound.jar,将它们选中并导入。成功后你的这个项目中会自动添加一个Referenced Libraries,这时你就可以开始尝试Java多媒体应用的开发了。为了便于各位技术友开发,这里提供一个简单的多媒体播放器的代码如下:
(该播放器分为MediaPanel和MediaTest两个类)
MediaPanel 中的代码:
import java.awt.BorderLayout;
import java.awt.Component;
import java.io.IOException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class MediaPanel extends JPanel{
public MediaPanel(URL mediaURL){
setLayout(new BorderLayout()); //Use a BorderLayout.
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
try{
Player mediaPlayer = Manager.createRealizedPlayer(mediaURL);
Component video = mediaPlayer.getVisualComponent();
Component controls = mediaPlayer.getControlPanelComponent();
if(video != null)
add(video, BorderLayout.CENTER);
if(controls != null)
add(controls, BorderLayout.SOUTH);
mediaPlayer.start();
}catch(NoPlayerException e){
JOptionPane.showMessageDialog(getRootPane(), "No media player found!");
}catch(CannotRealizeException e){
JOptionPane.showMessageDialog(getRootPane(), "Can not realize media player!");
}catch(IOException e){
JOptionPane.showMessageDialog(getRootPane(), "Error reading from the source!");
}//end try-catch
}//end constructor
}//end class
MediaTest中的代码:
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
public class MediaTest {
public static void main(String[] args) {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(null);
if(result == JFileChooser.APPROVE_OPTION){
URL mediaURL = null;
try{
mediaURL = fileChooser.getSelectedFile().toURI().toURL();
}catch(MalformedURLException e){
System.err.println("Can't create URL!");
}//end try-catch
if(mediaURL != null){
JFrame mediaTest = new JFrame("Media tester");
mediaTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MediaPanel mediaPanel = new MediaPanel(mediaURL);
mediaTest.add(mediaPanel);
mediaTest.setSize(300, 300);
mediaTest.setVisible(true);
}//end if: Find some URL
}//end if
}//end main
}//end class
备注:以上代码来自Person版的Java教程 Java How to Program
之后进行运行调试。注意Java这款API是个JAVA早期的API,它的功能非常有限,支持播放的格式:Avi, swf, spl, mp3, mpeg, mpg, mov, mid, rmi, au, aif, aiff。而且视频的清晰度不能太高,音质也不能太好,否则视频不能播放。测试成功之后,就可以导出jar并进一步根据需要处理了。
5. 导出JAR文件:
选中当前Project,点击eclipse中的file -> Export -> Java -> JAR File
注意要把导出选项的第一个和第三个都勾上,然后选Next -> Next
出现这个对话框时Main class选 MediaTest,然后Finish。这时,在你的Workplace中就可以找到一个JAR文件夹。如果你的计算机装有JRE(Java Runtime Environment),那么就可以用它看一些短小的、质量不太高的视频了。
如果有兴趣进一步将JAR打包成EXE等可执行文件的技术友们可以自行参阅网上其它教程,自行下载Java to exe的工具。一般都是先导出JAR文件,在通过JAR做成EXE的。
希望本文对Java初学者们的多媒体开发有所帮助。