在Java程序中播放音乐时出错

时间:2015-11-09 02:37:25

标签: java audio

好的,今天我终于决定在尝试修复Java程序后问我的Java程序是什么问题。如果您没有阅读标题,这是我的问题:我试图在程序中播放音乐,但它会返回错误。

首先,我必须把最重要的部分放在一边;班级

import java.io.File;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

public class Runawaytrain {
    public void play() { 
        try { 
            AudioInputStream in = AudioSystem.getAudioInputStream(new File("hard1.wav"));
            Clip clip = AudioSystem.getClip(); 
            clip.open(in); 
            clip.start(); 
            Thread.sleep(clip.getMicrosecondLength()); 
        } catch (Exception e) { 
            e.printStackTrace();
        } 
    }
    public static void main(String[] args){
        new Runawaytrain().play();
    }
}

这个程序我实际上用作测试,因为我在一个共同创作的游戏中使用的音乐不会播放。所以当我制作这个程序时,我得到了相同的堆栈跟踪:

javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1189)
    at krap2.Runawaytrain.play(Runawaytrain.java:12)
    at krap2.Runawaytrain.main(Runawaytrain.java:22)

文件hard1.wav包含在我的项目目录中。出于某种原因,它不会发挥作用,并且不断返回堆栈跟踪。

但我发现我的节目有点奇怪;当我使用URL中的音乐时,它可以工作。所以我尝试使用file://协议插入一个URL,但仍然没有运气。

所以,无论如何,为了完成这个,我会提供一些可能有助于回答问题的信息:

•操作系统:Mac

•安装了JVM:1.8.0

•音乐源:最初是一个MP3文件,通过VLC转换为.wav格式

由于

1 个答案:

答案 0 :(得分:0)

我很确定在制作新的File()时需要放置文件的整个系统路径(因此在Windows上它将是“Users / username /.../ hard1.wav”或者其他任何东西将在Mac上)。