今天编辑了一个播放mid音乐的程序,呵呵,,分享一下我的快乐!
今天编辑了一个播放mid音乐的程序,呵呵,
分享一下我的快乐!
祝大家学习进步!
import java.awt.event.*;
import javax.swing.*;
import javax.sound.midi.*;
import java.awt.*;
import java.io.*;
public class TestPlay extends JFrame implements ActionListener {
JButton startButton = new JButton("Start");
JButton stopButton = new JButton("Stop");
Player playBar = new Player();
JLabel label = new JLabel("name",SwingConstants.LEFT);
JTextField text = new JTextField("Enter music name:",SwingConstants.RIGHT);
public TestPlay() {
super("Playing music");
setSize(235,90);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BorderLayout bord = new BorderLayout();
GridLayout layout = new GridLayout(1,2);
JPanel pane1 = new JPanel();
JPanel pane2 = new JPanel();
pane1.setLayout(layout);
pane2.setLayout(layout);
startButton.addActionListener(this);
stopButton.addActionListener(this);
startButton.setEnabled(true);
stopButton.setEnabled(false);
pane1.add(label);
playBar.name = text.getText();
pane1.add(text);
pane2.add(startButton);
pane2.add(stopButton);
JPanel pane = new JPanel();
pane.setLayout(bord);
pane.add("Center",pane1);
pane.add("South",pane2);
setContentPane(pane);
show();
}
public void actionPerformed(ActionEvent evt) {
Object src = evt.getSource();
if(src==startButton){
playBar.name = text.getText();
playBar.play();
startButton.setEnabled(false);
stopButton.setEnabled(true);
}
else if(src==stopButton){
playBar.stop();
startButton.setEnabled(true);
stopButton.setEnabled(false);
}
}
public static void main(String[] args){
try{
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName()
);
}catch(Exception e){}
TestPlay frame = new TestPlay();
}
}
class Player implements Runnable {
Thread runner;
String name = null;
Sequencer sound;
Sequence soundname;
File file;
void play(){
if(runner==null){
runner = new Thread(this);
runner.start();
}
}
void stop(){
if(runner!=null)
sound.close();
runner = null;
}
public void run() {
try{
sound = MidiSystem.getSequencer();
file = new File(name);
soundname = MidiSystem.getSequence(file);
sound.open();
sound.setSequence(soundname);
sound.start();
while(sound.isRunning()){
try{
Thread.sleep(1000);
}catch(Exception e){
System.out.println("some problems happended in this programe");
}
}
sound.close();
}catch(Exception e){
System.out.println("can't play the music" + e.getMessage());
}
}
}