基于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 audio6 在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
相关文章推荐
- Java中异常的写法
- Java——集合
- java IO流总结
- Java性能优化(1):用静态方法代替构造函数
- Java反射机制
- Java 中设计模式 (单例模式) 介绍
- Javascrpt 速成篇】 二:js面向对象
- .svn导致java项目无法编译
- JAVA 多线程编程 --线程的调度策略
- Java内存区域划分、内存分配原理
- [Java] switch-case 当中的变量定义
- Eclipse下用Maven搭建SpringMvc+MyBatis
- Spring Hibernate 开启事务
- Java基于数据源的数据库访问
- 详解。。java设计思想与设计模式------Beginer
- Java集合总览
- Struts(3)工作机制及分析
- Struts(2)环境搭建
- java 输出流和输入流
- Struts(1)初识Struts