我一直在尝试处理Applet上的声音,并且不尝试所有其他方法,而是用Java播放声音的最佳方法是什么?有一些要求:
非常感谢您查看我的问题,希望大家有答案!
由于有了出色的帮助,我几乎可以使用它:
public class MyGame() {
Clip bullet;
public void init(){
try {
bullet = AudioSystem.getClip();
URL url2 = this.getClass().getResource("bulletSound.wav");
AudioInputStream ais2 = AudioSystem.getAudioInputStream( url2 );
bullet.open(ais2);
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedAudioFileException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
randomMethodToPlayBullet(){
bullet.setFramePosition(0);
bullet.start();
}
}
问题在于子弹声音会播放,但是如果在第一个子弹声音完成之前连续两次调用randomMethodToPlayBullet,则第二个子弹不会播放。
最佳答案
从jar文件加载资源的最佳方法是将一个类放在同一文件夹中,并使用.class.getResource(...)
或.class.getResourceaAsStream(...)
方法获取资源:
URL url = ClazzInTheFolderOfMyMidiFile.class.getResource(nameOfMidiFile);
要么
InputStream resourceAsStream = ClazzInTheFolderOfMyMidiFile.class.getResourceAsStream(nameOfMidiFile);
关于java - 当JAV中包含WAV时,如何在Java中播放WAV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12104619/