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

java学习之路之播放一首简单的音乐

2014-06-24 22:41 1306 查看
1.首先,要去网上下载个JMF工具,这个工具可以播放通常情况下的Mp3音乐文件和视频,也叫做Java媒体框架,可以去官网下载JMF官网下载,下载完之后,有个jmf的exe安装文件,双击打开进行安装,安装完成后,会在指定安装的目录下有3个文件夹,一个是bin,一个是doc,一个是lib,还有一个Uninst.isu文件,这里没有给出配置jmf环境的步骤,大家可以到百度查下如何配置,我的是直接把两个要用到的jar包添加进我们所需要的程序中,下面演示下如何添加所需要的jmf.jar和sound.jar包。

2.创建一个java工程,工程名为Music,然后再新建一个Music Class(类),选中工程右键选择Bulid Path,然后选择Configure Bulid Path...,点击进入后,出现下图页面:



3.因为我们要添加的库是jar包,点击Add External JARs...,点击Next,进入下一步就会跳出一个让你选择在你计算机里的jar包,我已经添加好了,要添加时选择你安装目录中的lib目录下的jmf.jar和sound.jar包,点击OK,就会在刚才新建的Music类中出现这两个包了,就如下图所示:



注:如果选择Add JARs...的话,会在你所有在eclipse工具下的工程中选择所需要的jar包,所以我们选择第二个。

4.接下来就要写代码了,在写代码之前,我们先把我们所需要播放的音乐文件放入本工程中,即Music项目,我放入的是一首张韶涵 - 欧若拉这首歌,我用两个按钮来实现的,用到了java swing图形化界面编程,接下来附上代码:

package com.music;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class Music{

	/**
	 * @param args
	 */
	private static Player player=null;
	private static JButton jb1,jb4;
	private static JPanel jp;
	private static Container c;
	private static JTextArea ta;
	public static boolean isPlay = true;
	public boolean isPause = true;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame jf=new JFrame();
		jf.setTitle("播放一首音乐");
		jf.setSize(300,200);
		jf.setVisible(true);
		jf.setLocationRelativeTo(null);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jp=new JPanel();
		jp.setLayout(new FlowLayout());
		jb1=new JButton("播放");
		jb4=new JButton("停止");
		jp.add(jb1);
		jp.add(jb4);
		jf.add(jp, BorderLayout.NORTH);
		c = jf.getContentPane();
		ta = new JTextArea();
		c.add(ta, BorderLayout.CENTER);
		jb1.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (e.getSource().equals(jb1)) {
					if (player == null) {
						File f = new File("张韶涵 - 欧若拉.mp3");
						if (f.exists()) {
							MediaLocator locator = new MediaLocator("file:"
									+ f.getAbsolutePath());
							try {
								player = Manager.createRealizedPlayer(locator);
								player.prefetch();// 预读文件
							} catch (NoPlayerException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
							} catch (CannotRealizeException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
							} catch (IOException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
							}
						} else {
							System.out.println(f + "找不到");
						}
					}
					player.start();//播放该音乐
					ta.setText("Hello Everyone!" + "    "
							+ "Listener to the music!");
					ta.setBackground(Color.pink);
				}
			}
		});
		
		
		jb4.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				player.stop();//停止播放该音乐
				player.realize();//释放资源
				player.close();//关闭
				ta.setText("Stop the music!");
				ta.setBackground(Color.magenta);
			}
			
		});
	}
}




5.点击运行,就出现下图所示的图形化界面:



6.点击播放按钮,就会播放欧若拉这首音乐,并出现下图界面:



7.点击停止按钮,便会停止播放该音乐,并且出现下图界面:



8.以上内容就到这了,这是本人学习所得,仅供学习参考交流,写得不好,敬请见谅,如要转载,请注明出处,如有什么错误和不明白的地方,请评论或者发信息给我,我将及时改正,谢谢了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: