我仿照书上例子写了一个发出声音的java程序,并且能在命令行里成功运行。可运行成功后,程序没自动结束,不能再输入其他的命令。我想请教一下在这种情况下,怎么结束正在运行的java程序。以下是程序代码和运行的截图!!程序代码:(该程序功能为发出一声弹钢琴的声音,没有任何的输出)import javax.sound.midi.*;
public class MiniMiniMusicApp {
public static void main(String[] args) {
MiniMiniMusicApp mini = new MiniMiniMusicApp();
mini.play();
}
public void play(){
try{zhuge
Sequencer player=MidiSystem.getSequencer();
player.open();
Sequence seq=new Sequence(Sequence.PPQ,4);
Track track=seq.createTrack();
ShortMessage a=new ShortMessage();
a.setMessage(144,1,44,100);
MidiEvent noteOn=new MidiEvent(a,1);
track.add(noteOn);
ShortMessage b=new ShortMessage();
b.setMessage(128,1,44,100);
MidiEvent noteOff=new MidiEvent(b,100);
track.add(noteOff);
player.setSequence(seq);
player.start();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}运行时截图:
public class MiniMiniMusicApp {
public static void main(String[] args) {
MiniMiniMusicApp mini = new MiniMiniMusicApp();
mini.play();
}
public void play(){
try{zhuge
Sequencer player=MidiSystem.getSequencer();
player.open();
Sequence seq=new Sequence(Sequence.PPQ,4);
Track track=seq.createTrack();
ShortMessage a=new ShortMessage();
a.setMessage(144,1,44,100);
MidiEvent noteOn=new MidiEvent(a,1);
track.add(noteOn);
ShortMessage b=new ShortMessage();
b.setMessage(128,1,44,100);
MidiEvent noteOff=new MidiEvent(b,100);
track.add(noteOff);
player.setSequence(seq);
player.start();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}运行时截图:
解决方案 »
- 自引用结构是什么结构?
- jdk中有没一个方法和方法A(每次调用时返回一个唯一的字符串)类似,并给出解释
- j2se windowClosing问题
- java显示网页的控件,像c#Webbrowser一样的,可以显示图片
- 求救,Integer.toString(8,3)是什么意思?看了api,不懂?
- 请问高人关于读文件以及处理的问题
- 求一个类似MessageBox或者Alert('')这样的窗体?
- 多态?
- 如何在WebLogic里面共享一个web名称?例如:将d:\test共享为:http://localhost:7001/test
- 字符串 数组排序问题 求教
- 请教一个关于宏的问题!
- 游戏怎么编译
或者在程序中mini.play();之后用一句System.exit();
顺便问一句,你用的是什么API版本?1.6么?
第一种方法可以。至于第二种方法我刚才就已经试了,加了System.exit(0); 虽然可以结束程序,但程序执行的时候却不能发出声音了,不知道为什么??我用的api是1.5的。现在有1.6的api吗?
等待输入
如果输入是 'Q' 就关闭声音线程 结束应用大致就这样
void main(...){
player.start();
while(read()!='q'){
}
player.exit();
}