多线程播放音频 Java
package demoone;
import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.util.Random;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.advanced.AdvancedPlayer;
public class Musictest extends Frame {
private void starttest() {
setTitle("小钢琴程序");
setSize(500, 500);
Random rd = new Random();
int x = rd.nextInt(1800);
int y = rd.nextInt(900);
setLocation(x, y);
setVisible(true);
addKeyListener(new Keyboard());
}
class Keyboard extends KeyAdapter{
public void keyPressed(KeyEvent e) {
String partn1 = null;
String s= "asdfghj";
int n= e.getKeyCode();
String i =e.getKeyChar()+"";
int m = s.indexOf(i)+1;
if(m>=1&&m<=7) {
partn1= "h"+m+".mp3";
}if(n>=49&&n<=55) {
partn1 = "d"+(n-48)+".mp3";
}
Thread key = new key(partn1);
key.start();
}
}
class key extends Thread{
AdvancedPlayer ad;
String partn;
public key(String partn) {
this.partn = partn;
}
@Override
public void run() {
super.run();
try {
ad = new AdvancedPlayer(key.class.getResourceAsStream(partn));
ad.play();
} catch (JavaLayerException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
System.out.println("小钢琴程序开始了!");
Musictest mut= new Musictest();
mut.starttest();
}
}