⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audioplayer.java

📁 疯狂Java讲义_源码(含Java设计模式CHM
💻 JAVA
字号:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.applet.*;
import javax.swing.event.*;
/**
 * Description:
 * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class AudioPlayer extends JApplet
{
	//定义一个音频对象
	AudioClip audioClip;
	JList audioList;
	//定义三个按钮
	JButton buttonPlay;
	JButton buttonLoop;
	JButton buttonStop;

	public void init()
	{
		java.util.ArrayList<String> musicList = new java.util.ArrayList<String>();
		int i = 1;
		//采用循环加载该Applet的所有参数
		while(true)
		{	
			String musicName = getParameter(i++ + "");
			if (musicName == null)
			{
				break;
			}
			else
			{
				musicList.add(musicName);
			}
		}
		String[] musicNames = new String[musicList.size()];
		musicNames = musicList.toArray(musicNames);
		audioList = new JList(musicNames);
		//默认加载第一首音乐
		audioClip = getAudioClip(getCodeBase() , "music/" + musicNames[0] + ".mid");
		buttonPlay = new JButton("开始播放");
		buttonLoop = new JButton("循环播放");
		buttonStop = new JButton("停止播放");
		//为三个按钮和audioList添加事件监听器
		buttonPlay.addActionListener(new PlayListener());
		buttonLoop.addActionListener(new PlayListener());
		buttonStop.addActionListener(new PlayListener());
		audioList.addMouseListener(new ChangeMusicListener());
		audioList.setPreferredSize(new Dimension(240 , 400));
		add(new JScrollPane(audioList));
		JPanel jp = new JPanel();
		jp.add(buttonPlay);
		jp.add(buttonLoop);
		jp.add(buttonStop);
		add(jp , BorderLayout.SOUTH);
	}
	//定义用于三个按钮的监听器
	class PlayListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			//根据按钮来决定对音频文件播放、暂停和循环播放
			if (e.getSource() == buttonPlay)
			{
				if (audioClip != null)
				{
					audioClip.stop();
				}
				audioClip = getSelectedAudioClip();
				audioClip.play();
			}
			else if(e.getSource() == buttonLoop)
			{
				if (audioClip != null)
				{
					audioClip.stop();
				}
				audioClip = getSelectedAudioClip();
				audioClip.loop();
			}
			else if (e.getSource() == buttonStop)
			{
				audioClip.stop();
			}
		}
	}
	//实现JList上的鼠标动作监听器
	class ChangeMusicListener extends MouseAdapter
	{
		public void mouseClicked(MouseEvent e)
		{
			if (e.getClickCount() >= 2)
			{
				if (audioClip != null)
				{
					audioClip.stop();
				}
				audioClip = getSelectedAudioClip();
				audioClip.play();
			}
		}
	}
	//返回JList中当前选中项对应的音频对象
	private AudioClip getSelectedAudioClip()
	{
		String selected = audioList.getSelectedValue().toString();
		//返回以当前选中项创建的音频对象
		return getAudioClip(getCodeBase() , "music/"
			+ selected + ".mid");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -