您的位置:首页 > 编程语言 > Java开发

基于JMF下的Java的MP3播放

2015-08-19 20:30 435 查看
Java的基本API类中是不能播放MP3格式音频。可以通过JMF(Java Media Framework Java媒体框架)来增加对mp3及更多格式音视频的播放。JMF是也不可以播放MP3的,要下载MP3插件才可以并注册才可以下载。mp3plugin插件下载下来也是一个jar文件,将该文件放到JMF下的lib中JMF下Java播放MP3的步骤:1 下载JMF 可以从oracle官网下载到2 下载完成后 在window平台下是EXE的安装文件。可以安装在任意目录。3 安装完成后 要对环境变量进行修改,增加该JMFeg:我的安装在 D:\Program Files (x86)\JMF2.1.1eJMF_HOME=D:\Program Files (x86)\JMF2.1.1epath=...;%JMF_HOME%\bin;classpath=...;%JMF_HOME%\*.jar4 将JMF的lib的所有jar都复制到JDK的jre/lib/ext 下 .注意:一定要将mp3plugin.jar也复制到该文件夹下5 注册MP3plugin插件在JMF目录的bin目录中,有个jmfregistry,运行之,在plugin选项卡的Codec选项卡中的左边的文本框中,输入com.sun.media.codec.audio.mp3.JavaDecoder,点击中间的add按钮,这样就在列表中注册了mp3的插件,然后按以下commit这里不改的话,就会出现下面的问题:
Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize=32768 bits
Failed to realize: input media not supported: mpeglayer3 audio
6 在JMF的lib文件夹中,有个jmf.properties文件,将此文件和其他jar包(包括mp3plugin.jar)都添加到eclipse项目的lib目录中 ,添加到buildpath测试代码:
package com.jmf.test;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.media.bean.playerbean.MediaPlayer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame{

private static MediaPlayer mediaPlayer = null;
JPanel contentPanel = new JPanel();

public Test(){

mediaPlayer = new MediaPlayer();
mediaPlayer.setMediaLocation("file:///E:/HappyBirthday/music/onceisnice.mp3");

setContentPane(contentPanel);

contentPanel.setLayout(new FlowLayout());

JButton playButton = new JButton();
playButton.setText("play");
playButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
mediaPlayer.realize();
mediaPlayer.start();
}
});
contentPanel.add(playButton);

}

public static void main(String[] args){
Test test = new Test();
test.setVisible(true);
test.setSize(100, 200);
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}
注意:不知为何,有的音乐使用JMF是播放不出来的。我使用百度音乐api下载下来音乐,但是在JMF中播放不了,在其他的音乐播放器中都能播放出来。而且,在JMF中能播放从酷狗中下载下来的音乐,就是无法播放我从百度音乐api下载下来的音乐。所以,我打算放弃使用JMF,使用MPlayer,而且MPlayer的功能比JMF强大多了。感兴趣的可以去这个网址,下载下来源码自己看看:
http://download.csdn.net/detail/susuifeng/2251661
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: