62,614
社区成员
发帖
与我相关
我的任务
分享
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.net.URL;
import java.applet.Applet;
import java.io.File;
/**
*
* @author Shylock
*/
class Tool {
public static void showMsg(String msg)
{
System.out.println(msg);
}
}
class Audio extends Frame implements Runnable,ActionListener,ItemListener{
Thread thread;
Choice choice;
URL url;
AudioClip clip;
Button buttonPlay;
Button buttonLoop;
Button buttonStop;
String str;
Audio(){
thread = new Thread(this);
choice = new Choice();
choice.add("1.mid");
choice.add("1.mp3");
choice.addItemListener(this);
buttonPlay = new Button("Play");
buttonLoop = new Button("Loop");
buttonStop = new Button("Stop");
buttonPlay.addActionListener(this);
buttonLoop.addActionListener(this);
buttonStop.addActionListener(this);
setLayout(new FlowLayout());
add(choice);
add(buttonPlay);
add(buttonLoop);
add(buttonStop);
setSize(350,120);
setVisible(true);
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
validate();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == buttonPlay){
clip.play();
}
else if(e.getSource() == buttonLoop){
clip.loop();
}
else{
clip.stop();
}
}
@Override
public void itemStateChanged(ItemEvent e) {
str = choice.getSelectedItem();
if(!thread.isAlive()){
thread = new Thread(this);
}
try{
thread.start();
}catch(Exception exp){
Tool.showMsg(exp.toString());
}
}
@Override
public void run() {
try{
File file = new File(str);
url = file.toURI().toURL();
Tool.showMsg(url.toString());
clip = Applet.newAudioClip(url);
Tool.showMsg(clip.toString());
Tool.showMsg(Thread.currentThread().getName()+"....run....");
}
catch(Exception e){
Tool.showMsg(e.toString());
}
}
}
public class AudioDemo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Audio audio = new Audio();
//audio.thread.start();
}
}