用Java写的一个MIDI 播放小程序有问题

时间:2021-09-05 05:50:03
代码如下:
import javax.sound.midi.*;

public class MiniMiniMusicApp{

 public static void main(String [] args){
 
 MiniMiniMusicApp mini = new MiniMiniMusicApp();
 mini.play();
 }
void play() {
try{

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, 16);
track.add(noteOff);

player.setSequence(seq);

player.start();



}catch(Exception ex){
ex.printStackTrace();
}
}

}


运行之后听到了钢琴音,但是控制台却warning了,如下:

引用
六月 09, 2014 4:14:45 下午 java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.


请问这是什么意思,程序到底算是有错还是无错呢,怎么消除这个warning呢

2 个解决方案

#1


warning只是警告不是错误,基本不影响程序运行。
不过你确定这个关于注册表的警告是运行这个程序的时候产生的?

#2


终于知道怎么回事了。。其实你不管它也没有关系
如果要去掉警告的话,以管理员身份运行注册表编辑器,创建HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs项就行了
运行注册表编辑器有多种方法,比如在Win7里,在开始菜单里搜索regedit.exe

#1


warning只是警告不是错误,基本不影响程序运行。
不过你确定这个关于注册表的警告是运行这个程序的时候产生的?

#2


终于知道怎么回事了。。其实你不管它也没有关系
如果要去掉警告的话,以管理员身份运行注册表编辑器,创建HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs项就行了
运行注册表编辑器有多种方法,比如在Win7里,在开始菜单里搜索regedit.exe