【原创】JAVA开发的小音乐播放器


eclipse开发的音乐播放器,利用了JMF包,实现播放,暂停,继续播放,停止功能,有播放列表,能自己选择播放哪个目录下的文件,加入了文件筛选器,会自动将该目录下支持的所有音频文件取出,形成播放列表


/*
 * 程序操作说明:
 * 点击菜单“文件”,选择“打开”选定在某目录下程序会将所有支持的音频文件取出,放在播放列表中,用鼠标双击文件开始播放或点击文件选择在点击播放按钮,点击暂停,暂停播放,在点击播放会继续播放
 * 点击停止会停止播放按钮,点击关闭按钮会关闭程序
 * 本程序支持的音频格式有au.wav.midi.rfm.aiff.MP3.mp2,本程序利用了JMF包,
 * 运行前请下载jmf-2_1_1e-windows-i586.exe, 下载地址链接:http://删除pan.baidu.com/s/1pJjqN71 密码:pz58  安装,如出现     访问限制由于对必需的库XX具有一定限制,因此无法访问类型,请按如下办法解决
	在项目上点击右键,找到构建路径。然后选择配置配置路径。按如下步骤来配置:
	1 点击库选项
	2把系统库扩展开来
	3点击访问规则
	4编辑访问规则
	5 分辨率设为可访问
	6规则模式设为**
	7选择ok按钮
	程序的基本结构:
	text()为text类的构造函数,由它通过调用GUIInit函数完成界面的设计,而actionPerformed函数实现大部分程序功能。
	GUIInit函数中的匿名类会完成鼠标单双击事件
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.media.*;
public class finalMidClass	{
	public static void main(String args[])	{
    	text MainInterface=	new text();
    	
    }
}
 class text extends JFrame implements ActionListener	{
	 	JPanel panel,panel1,panel2;
		JMenuBar menubar;
		JMenu menu1,menu2;
		JMenuItem itemOpen,item2;
	    JButton playbutton,Pausebutton,Stopbutton,contbutton;
	    JLabel label1,label2,label3,label4;
		List PlayList;
		String filepath;                   //播放文件目录
		String fildname; 				   //文件名
		String fild;
		boolean isplaying=false;
		boolean ispause  =false;
		Player player;
		public text()	{
			setTitle(" kavs player");
			setLayout(new GridLayout(2,1));
			GUIInit();
			setBounds(320,120,355,450);
			setVisible(true);
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
		 //完成界面的设计
	    void GUIInit ()	{
	    	panel=new JPanel();
	    	panel1=new JPanel();
	    	panel2=new JPanel();
	    	label1=new JLabel(" written by peeramog ");
	    	label1.setHorizontalAlignment(SwingConstants.CENTER);
	    	label2=new JLabel("播放目录");
	    	label3=new JLabel("播放列表");
	    	label3.setHorizontalAlignment(SwingConstants.CENTER);
	    	menubar =new JMenuBar();
	    	menu1=new JMenu("文件 ");
	    	menu2=new JMenu("帮助 "); 
	    	itemOpen=new JMenuItem("打开");
	    	menu1.add(itemOpen);
	    	itemOpen.addActionListener(this);
	    	menubar.add(menu1);
	    	menubar.add(menu2);
	    	setJMenuBar(menubar);
	    	panel.add(label2);
	    	playbutton	=new JButton("播放");
	    	Pausebutton =new JButton("暂停");
	    	Stopbutton  =new JButton("停止");
	    	playbutton.addActionListener(this);
	    	Pausebutton.addActionListener(this);
	    	Stopbutton.addActionListener(this);
	    	panel1.add(Pausebutton);
	    	panel1.add(playbutton);
	    	panel1.add(Stopbutton);
	    	panel.setSize(getPreferredSize());
	    	panel.setBounds(30,30,355,200);
	    	panel.setBackground(Color.green);
	    	panel.setLayout(new BorderLayout());
	    	panel.add(panel1,BorderLayout.CENTER);
	    	panel.add(label1,BorderLayout.NORTH);
	    	panel.add(label3,BorderLayout.SOUTH);
	    	add(panel);
	    	panel2.setBackground(Color.black);
	    	panel2.setLayout(new BorderLayout());
	    	PlayList =new List(10);
	    	panel2.add(PlayList,BorderLayout.CENTER);
	    	add(panel2);
	    	validate();
	    	PlayList.addMouseListener( new MouseAdapter() {

	            public void mouseClicked(MouseEvent e) {

	               
	            	if(e.getClickCount()==1)	{	//单击时处理
	            		fildname = PlayList.getSelectedItem();
	            	}
	                if (e.getClickCount()==2) {			 //双击时处理

	                    //播放选中的文件
	                	if(isplaying==true)	{
	                		player.stop();
	                		player.setMediaTime(new Time(0));
	                	}
	                	
	                	fild = PlayList.getSelectedItem();
	                	testplaying();
	                	readerfile();
	                    player.start();
	                    isplaying=true;
	                    
	                }

	            }

	        });
	    	
	    	
	    }
	   //
	   //  以下完成事件的处理
	   public void actionPerformed(ActionEvent e)	{
		   	if(e.getSource()==itemOpen)	{
	    		FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD); 
				fd.setVisible(true);
				if (fd.getFile() == null) { 
					return; 
					} 
				// 保存了所选文件的名称及其路径名称 
				// 同时设置当前文件夹路径 
				fildname = fd.getFile();
				filepath=fd.getDirectory();
				if (filepath!=null) {
							label2.setText("播放目录:" + fildname);	//显示文件列表
							PlayList.removeAll();
					            File filedir = new File(filepath);
							File[] filelist = filedir.listFiles();
					            for (File Sfile : filelist) {
					            	fild = Sfile.getName().toLowerCase();
					               if (fild.endsWith(".mp3")|| fild.endsWith(".wav")||fild.endsWith(".mid")||fild.endsWith(".au")||fild.endsWith(".midi")||fild.endsWith(".rfm")||fild.endsWith(".mp2")) {
					                	PlayList.add(fild);

					                }

					            }

					        }
					}
			 if(e.getSource()==playbutton)	{
	    		 
	    		 if (player!=null)
	    		 {    	
	    		 		fild = PlayList.getSelectedItem();
	    		 		if(ispause==true)	{
	    		 			player.start();
	    		 			ispause=false;
	    		 			}
	    		 		else 
	    		 		{	
	    		 			testplaying();
	    		 			readerfile();
	    		 			player.start();
	    		 		}
	    		 		isplaying=true;
	    		 }
	    		 if (player==null)	{
	    			 readerfile();
	    			 player.start();
	    			 isplaying=true;
	    		 }
	    			
						return;
	    	 }
	    	 if(e.getSource()==Pausebutton)	{
	    		 if (player != null) { 
	    			 ispause=true;
	    			 player.stop();
	    			} 
	    		 	return; 
	    	 }
	    	 if(e.getSource()==Stopbutton)	{
	    		 if (player != null) { 
						player.stop(); 
						player.setMediaTime(new Time(0)); 
						} 
					return; 
	    	 }
	    	
	    }
	    public void readerfile()	{
	    	
	    	try {
	    		fild= filepath+fildname;
	    		 player = Manager.createPlayer(new MediaLocator("file:" +fild)); 
	    		
	    		
	    	}
	    	catch(Exception e1)		{
	    		System.out.println(e1); 
				return;
	    	}
	    }
	    public void testplaying()	{
	    	if(isplaying==true){
 	    		player.stop();
 	    		player.setMediaTime(new Time(0));
 	    		isplaying=false;
 	    	}
	    }
 }

界面如下

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java术语,意为Java媒体框架(JMF)。该核心框架支持不同媒体(如:音频输出和视频输出)间的时钟同步。它是一个标准的扩展框架,允许用户制作纯音频流和视频流。 JMF实际上是Java的一个类包。JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支 持,如M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format (RMF)等。JMF 2.1.1还支持广受欢迎的媒体类型,如Quicktime、Microsofts AVI和MPEG-1等。此外,JMF 2.1.1软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。 Sun以四种不同的专用版本提供JMF 2.1.1技术,满足专业开发人员的各类需求,第一个是一个轻便型版本,它完全采用Java语言编写,适用于任何Java兼容系统。此外,开发人员还可选 择分别适用于Solaris、Windows或Linux等操作系统的性能最优化软件包,以提高性能和能力。 JMF 2.1.1软件也是Java Media系列软件的一部分。Java Media系列软件包括Java 3D、Java 2D、Java Sound和Java Advanced Imaging等API。采用各种Java Media API,软件开发商人员就能容易、快速地为他们已有的各种应用程序和客户端Java小程序增添丰富的媒体功能,如流式视频、3D图像和影像处理等。就是 说,各种Java Media API发挥了Java平台的固有优势,将"编写一次,到处运行"的能力扩展到了图像、影像和数字媒体等各种应用领域,从而大大缩减了开发时间和降低了开发 成本。
### 回答1: Java课程设计音乐播放器是一个有趣的话题,可以激发学生的兴趣,提高他们的编程技能。在设计一个音乐播放器时,我们需要考虑以下方面: 1. 用户界面设计: 设计一个直观、易用的用户界面是至关重要的。使用Swing或JavaFX等Java来创建窗体和控件,可以让界面看起来更加专业和现代化。 2. 音频处理:使用Java Sound API或第三方来读取、播放和处理音频。在处理音频时,需要考虑如何控制音量、进度条、音频均衡器等。 3. 文件处理:设计一个简单的文件浏览器或媒体管理器,以便用户可以选择他们的音乐文件并将它们添加到播放器中。 4. 媒体标签:为每个添加的音频文件添加媒体标签,这些标签可以包括歌曲的标题、艺术家、专辑和封面图像。我们可以使用Java ID3或MP3 SPI来实现这个功能。 5. 播放列表:实现一个播放列表,让用户可以创建、编辑和保存不同的播放列表。使用Java的集合类来管理播放列表。 总的来说,Java课程设计音乐播放器是一个综合性很强的项目,需要用到Java的很多不同方面,包括用户界面设计、音频处理、文件处理、媒体标签和集合管理等方面的知识。此外,需要注意代码的可读性和可维护性,还要确保它的正确性和可靠性,这些都是设计一个成功的音乐播放器必需的。 ### 回答2: Java课程设计音乐播放器是一项很有趣又有挑战性的任务。音乐播放器的目的是为用户提供一种方便快捷的方式来播放和管理音乐。在这个课程设计中,我们需要使用Java语言编写一个具有良好用户界面的音乐播放器,该播放器应该能够完成用户常用的音乐播放功能,如播放、暂停、快进、快退、上一曲、下一曲、音量调节、播放模式切换等。 设计音乐播放器的过程中,我们首先需要确定UI设计,包括主窗口的大小、布局、按钮组件、进度条组件等。接着,我们需要通过Java代码实现音乐播放器的各种功能,例如使用Java IO打开音乐文件,加载音乐资源,并通过Java线程来实现多任务管理。 在编写Java音乐播放器时,我们可以利用Java SE提供的Java Media Framework(JMF,该是一个Java媒体框架,提供了一套完整的API接口,可以帮助我们实现音乐播放器的功能。我们可以使用JMF来播放多种格式的音乐文件,甚至可以实现多媒体文件的混音和编辑功能。 最后,我们需要记录和管理用户的播放历史、喜好和排行榜等重要信息。我们可以利用Java数据技术(如JDBC)来实现数据的存取、更新和查询等操作。 总之,Java课程设计音乐播放器是一个极具挑战性的项目。通过设计一个功能强大、易用、美观大方的音乐播放器,我们可以深入了解Java语言和程序设计的精髓。 ### 回答3: Java是一种功能强大的编程语言,它可以用来设计和实现各种各样的应用程序,包括音乐播放器音乐播放器是一种非常受欢迎的应用程序,它可以让用户在计算机上播放各种类型的音乐文件。 设计Java音乐播放器时,需要考虑以下几点: 1.界面设计 音乐播放器的界面应该是简单易用的,充分考虑用户的操作习惯和审美观。同时,必须确保用户可以轻松选择需要播放的音乐文件,并可以对音乐进行控制,如播放/暂停,调整音量,跳过等操作。 2.音频编解码 Java提供了多种方法和类来处理音频文件的编解码和播放,如Java Sound API、JavaFX Media API和Java Media Framework。应根据需要选择适当的API,以确保音频文件可以正常播放。 3.音乐管理 音乐播放器需要支持音乐的管理,包括将音乐文件添加到中,从中删除文件等。可以使用数据来存储音乐信息,或者使用文件系统来管理音乐文件。 4.播放列表 播放列表是用户选择要播放的音乐文件的列表,必须能够方便地添加和编辑。对于喜欢听歌的用户来说,该功能非常重要。 总之,设计Java音乐播放器需要考虑多方面的问题。只有在充分了解用户需求和技术需求的情况下,才能设计出易于使用且稳定可靠的音乐播放器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值