关键代码
1.获取本地音乐文件
int index = 0;//音乐位置索引
String[] file = { "WeddingDress.au", "(violin).au", "Capox.au","Jasper.au", "Cn.au" };//音乐名称
/**
* 正确获取地址的方法
*/
URL url = getClass().getResource("Cn.au");//初始化一个地址
audio = Applet.newAudioClip(url);
2. 创建下拉框,把音乐名放进去
Choice c =new Choice();
String[] description = { "WeddingDress.au", "(violin).au", "Capox.au", "Jasper.au", "Cn.au" };
int count = 0;
for (int i = 0; i < 5; i++) {//将音乐名加入下拉框中
c.addItem(description[count++]);
}
c.addItemListener(this);
this.add(c);
3. 获取下拉框里面的内容,并且切换播放选中的音乐
public void itemStateChanged(ItemEvent ie) {//获取下拉框的选中内容
if (ie.getSource() == c) {
Choice temp = (Choice) ie.getSource();
/**
* 获取下拉框选定的内容
*/
index = c.getSelectedIndex();
stop();
switch (index){//用一个switch,播放选中的音乐
case 0:
URL url0 = getClass().getResource("WeddingDress.au");
audio = Applet.newAudioClip(url0);
stop();
break;
case 1:
URL url1 = getClass().getResource("(violin).au");
audio = Applet.newAudioClip(url1);
stop();
break;
case 2:
URL url2 = getClass().getResource("Capox.au");
audio = Applet.newAudioClip(url2);
stop();
break;
case 3:
URL url3 = getClass().getResource("Jasper.au");
audio = Applet.newAudioClip(url3);
stop();
break;
case 4:
URL url4 = getClass().getResource("Cn.au");
audio = Applet.newAudioClip(url4);
stop();
break;
}
play();
}
}
4.获取按钮点击事件
public void actionPerformed(ActionEvent e) {
// 如果点击的是Play按钮
if (e.getSource() == btPlay) {
audio.stop();
play();
}
// 如果点击的是loop按钮
if (e.getSource() == btLoop) {
audio.loop();
}
// 如果点击的是stop按钮
if (e.getSource() == btStop) {
audio.stop();
}
}
5.三个简单的点击操作方法
/**
*
* 方法说明:播放声音
*/
public void play() {
if (audio != null)
stop();
audio.play();
}
/**
* 方法说明:循环播放声音
*/
public void loop() {
if (audio != null)
audio.loop();
}
/**
*
* 方法说明:停止播放声音
*/
public void stop() {
if (audio != null)
audio.stop();
}
源码
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.event.*;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.awt.*;
@SuppressWarnings("serial")
public class myPlayer extends Applet implements ActionListener, ItemListener {
AudioClip audio;// 音乐播放控件
Button btExit, btOpen, btPlay, btLoop, btStop;// 按钮
Choice c = new Choice(); // 下拉框
int index = 0;// 音乐位置索引
String[] file = { "WeddingDress.au", "(violin).au", "Capox.au", "Jasper.au", "Cn.au" };// 音乐名称
/**
*
* 方法说明:初始化Applet
*
*/
public void init() {
/**
* 正确获取地址的方法
*/
URL url = getClass().getResource("Cn.au");// 初始化一个地址
audio = Applet.newAudioClip(url);
setLayout(new FlowLayout());// 流式布局
btPlay = new Button("Play");// 新建一个Play按钮
btPlay.addActionListener(this);// 给Play按钮添加一个监听事件
btLoop = new Button("Loop");// 新建一个Loop按钮
btLoop.addActionListener(this);// 给Loop按钮添加一个监听事件
btStop = new Button("Stop");// 新建一个Stop按钮
btStop.addActionListener(this); // 给Stop按钮添加一个监听事件
// 将按钮添加到Applet中
this.add(btPlay);
this.add(btLoop);
this.add(btStop);
String[] description = { "WeddingDress.au", "(violin).au", "Capox.au", "Jasper.au", "Cn.au" };
int count = 0;
for (int i = 0; i < 5; i++) {// 将音乐名加入下拉框中
c.addItem(description[count++]);
}
c.addItemListener(this);
this.add(c);
}
public void itemStateChanged(ItemEvent ie) {// 获取下拉框的选中内容
if (ie.getSource() == c) {
Choice temp = (Choice) ie.getSource();
/**
* 获取下拉框选定的内容
*/
index = c.getSelectedIndex();
stop();
switch (index) {
case 0:
URL url0 = getClass().getResource("WeddingDress.au");
audio = Applet.newAudioClip(url0);
stop();
break;
case 1:
URL url1 = getClass().getResource("(violin).au");
audio = Applet.newAudioClip(url1);
stop();
break;
case 2:
URL url2 = getClass().getResource("Capox.au");
audio = Applet.newAudioClip(url2);
stop();
break;
case 3:
URL url3 = getClass().getResource("Jasper.au");
audio = Applet.newAudioClip(url3);
stop();
break;
case 4:
URL url4 = getClass().getResource("Cn.au");
audio = Applet.newAudioClip(url4);
stop();
break;
}
play();
}
}
public void actionPerformed(ActionEvent e) {
// 如果点击的是Play按钮
if (e.getSource() == btPlay) {
audio.stop();
play();
}
// 如果点击的是loop按钮
if (e.getSource() == btLoop) {
audio.loop();
}
// 如果点击的是stop按钮
if (e.getSource() == btStop) {
audio.stop();
}
}
/**
*
* 方法说明:播放声音
*/
public void play() {
if (audio != null)
stop();
audio.play();
}
/**
* 方法说明:循环播放声音
*/
public void loop() {
if (audio != null)
audio.loop();
}
/**
*
* 方法说明:停止播放声音
*/
public void stop() {
if (audio != null)
audio.stop();
}
}