Java 播放多媒体 谈Java Media Framework

很多Java初学者想在制作的Java小程序中插入一段视频或者多媒体,却感到无所适从。因为Java的多媒体涉及到一个叫做Java media frameworkAPI。本文就结合作者完成一次多媒体播放器的制作经历,详细论述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.jarmediaplayer.jarsound.jar,将它们选中并导入。成功后你的这个项目中会自动添加一个Referenced Libraries,这时你就可以开始尝试Java多媒体应用的开发了。为了便于各位技术友开发,这里提供一个简单的多媒体播放器的代码如下:

(该播放器分为MediaPanelMediaTest两个类)

 

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 classMediaTest,然后Finish。这时,在你的Workplace中就可以找到一个JAR文件夹。如果你的计算机装有JREJava Runtime Environment),那么就可以用它看一些短小的、质量不太高的视频了。

 

如果有兴趣进一步将JAR打包成EXE等可执行文件的技术友们可以自行参阅网上其它教程,自行下载Java to exe的工具。一般都是先导出JAR文件,在通过JAR做成EXE的。

 

希望本文对Java初学者们的多媒体开发有所帮助。

你可能感兴趣的:(Java 播放多媒体 谈Java Media Framework)