在java中播放.wav文件时出现问题

8mmmxcuj  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(564)

我创建了一个我认为非常简单的程序,在java中播放了一个.wav文件,但是程序启动时声音没有播放。我所有的导入似乎都很好,我也不太清楚为什么它没有播放,我开始怀疑这是否是我把文件放在哪里的问题。我已经附上了我的代码,并在此截图的位置,我的文件在这个项目。如果需要更多的信息,请告诉我。感谢您的帮助。

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) {

    }
}
}
nkcskrwz

nkcskrwz1#

问题不在于寻址,而是程序在播放声音之前完成并关闭。
命令 clip.start() 在守护进程线程上启动并播放声音。这些线程即使在并发运行时,也不会保持java程序处于打开状态。因为程序中没有其他任何事情发生,所以一切都会关闭,什么也听不到。
一个简单的测试方法是添加命令 Thread.sleep(..) 开始剪辑后。更常见的做法是从gui触发声音,gui的存在使java程序在剪辑期间保持活动状态。
如果您的声音没有播放加上睡眠暂停,那么我们可以看看寻址。顺便说一句,你最好 AudioInputStreamURL 而不是从一个 File . 如果你计划把你的程序放入jar,并将音频资源作为jar的一部分, File 将无法找到这些内部资源。

相关问题