有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

玩游戏有问题。java中的WAV文件

我正在创建一个我认为非常简单的程序,它发挥了巨大的作用。wav文件,但程序启动时声音不播放。我所有的导入似乎都很好,我也不太清楚为什么它没有播放,我开始怀疑我的文件放在哪里是否有问题。我在这里附上了我的代码和这个项目的location of my files截图。如果需要更多信息,请告诉我。感谢您的帮助

package javaSounds;

import java.io.File;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class JavaSounds {
public static void main(String[] args) {

    File explosion = new File("explosion.wav");
    PlaySound(explosion);

}

static void PlaySound(File Sound) {

    try {
        Clip clip = AudioSystem.getClip();
        clip.open(AudioSystem.getAudioInputStream(Sound));
        clip.start();

    } catch (Exception e) {

    }
}
}

共 (1) 个答案

  1. # 1 楼答案

    问题不在于寻址,而在于程序在播放声音之前完成并关闭

    命令clip.start()守护进程线程上启动并播放声音。这些线程即使在并发运行时也不会保持Java程序处于打开状态。由于节目中没有其他任何事情发生,因此一切都会关闭,听不到任何声音

    测试这一点的一个简单方法是在开始剪辑后添加命令Thread.sleep(..)。更常见的做法是从GUI触发声音,GUI的存在使java程序在剪辑期间保持活动状态

    如果您的声音没有播放加上睡眠暂停,那么我们可以查看寻址。顺便说一下,从URL获取AudioInputStream比从File获取AudioInputStream更好。如果您计划jar程序并将音频资源作为jar的一部分,那么File将无法找到这些内部资源