|
一.线程处理[不推荐]:
<1>使用方法:假设和我们的.java文件同目录下有a.mid文件
1 在需要声音的.java文件中声明一个SoundEffects的全局对象snd,比如:
private SoundEffects snd = new SoundEffects();
2 在需要声音的位置写
new Thread(){
public void run(){
snd.playMIDI("/a.mid");
}
}.start();
// 这样就播放了
3 停止,在需要停止的地方写
if(snd != null)
snd.destroy();
// 这样snd就释放为null了,如果要再播放,先要
// snd = new SoundEffects();
<2>优点:可以在一个应用中使用多个SoundEffects对象,即可以使用多个Player对象。程序代码中可以很清晰的看出不同的Player对象播放不同的声音文件。(也许这不是优点)
<3>缺点:开销大(占用CPU时间),开启和关闭线程都有很大的开销(这里的开销应该是CPU调度开销),经测试,采用这种线程处理声音播放的方式,游戏应用运行5-6个小时后,将出现“死机”现象。
SoundEffects类源文件见附件。
上一篇:第一个Spring MVC程序
下一篇:应用双缓冲技术解决画面闪烁的问题
|