Java程序中添加播放MIDI音乐功能的实现方法详解
2013-05-21 16:03
1156 查看
package test1;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Hashtable;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
public class Test5 implements Runnable{
private Sequencer midi;
private String[] names={"1.mid","2.mid","3.mid","4.mid","5.mid"};
private int i;
private Map<String,Sequence> map;
public Test5(){
initMap();
new Thread(this).start();
}
private void initMap(){
try {
map = new Hashtable<String, Sequence>();
midi = MidiSystem.getSequencer(false);
midi.open();
for (String s : names) {
try {
Sequence s1 = MidiSystem.getSequence(new File(s));
map.put(s, s1);
} catch (InvalidMidiDataException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}
} catch (MidiUnavailableException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void createPlayer(String name){
try {
Sequence se=map.get(name);
midi.setSequence(se);
midi.start();
}catch (InvalidMidiDataException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void run(){
while(true){
try {
System.out.println("换文件了."+(++i));
String name=names[(int)(Math.random()*names.length)];
createPlayer(name);
Thread.sleep(10000);
} catch (InterruptedException ex) {
Logger.getLogger(Test5.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public static void main(String[] args) {
new Test5();
}
}
相关文章推荐
- 为Java程序中添加播放MIDI音乐功能
- 为Java程序中添加播放MIDI音乐功能
- 为Java程序中添加播放MIDI音乐功能
- 使用native方法扩展Java程序的功能详解
- Java程序中实现调用Python脚本的方法详解
- 解析Java实现随机验证码功能的方法详解
- Java8的HashMap详解(存储结构,功能实现,扩容优化,线程安全,遍历方法)
- 解析Java实现随机验证码功能的方法详解
- java-第十四章-代参的方法(二)-实现MyShopping系统的添加会员功能
- Java Swing实现窗体添加背景图片的2种方法详解
- 举例详解用Java实现web分页功能的方法
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- Java实现单向链表的基本功能详解
- javascript实现Java中的Map对象功能的实例详解
- Java程序9 X 9乘法表(补:第二种方法:递归算法实现99乘法表|再补:解析递归算法)
- java程序实现邮箱发送邮件功能
- java实现ping功能的几种方法
- Java程序实现导出Excel的方法(支持IE低版本)
- Java利用剪贴板实现交换程序间数据的方法