0

プログラムを作成していますが、プログラムを開いたときにサウンドの再生を開始したいと考えています。これを行う最も簡単な方法は、jar の src フォルダーに .wav ファイルを埋め込むことだと考えました。ファイルを呼ばれるパッケージに入れましたfiles。写真など、使用している他のすべてのファイルはそのパッケージにあり、すべて正常に動作します。サウンドを再生する私の方法は次のとおりです。

public static void playSound(String dir, int loopTimes) throws Exception {
    URL url = new File(dir).toURI().toURL();
    Clip clip = AudioSystem.getClip();
    // getAudioInputStream() also accepts a File or InputStream
    AudioInputStream ais = AudioSystem.getAudioInputStream(url);
    clip.open(ais);
    if (loopTimes == -1)
        loopTimes = Clip.LOOP_CONTINUOUSLY;
    clip.loop(loopTimes);
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {

        }
    });
}

また、デスクトップ、ドキュメント、その他の場所にあるときにサウンドを再生するために機能します。サウンドを再生するために入力しているパス"files/FBP.wav"は、FBP がファイルの名前です。Googleで解決策を見つけることができませんでした。JARにあるためだと感じています。私もこれを試しただけです:

if(new File("files/FBP.wav").exists()){
        System.out.println("EXISTS!");
    }
    System.exit(0);

そして、それが存在することを決して出力しませんでした。binフォルダーにもあることを確認しました。私は日食を使用しています。私が得るエラーはですfilenotfoundexception。どんな助けでも大歓迎です!前もって感謝します!

4

1 に答える 1

2

交換:

URL url = new File(dir).toURI().toURL();

と:

URL url = MySoundClassName.class.getClassLoader().getResource(dir);

または非静的メソッドの場合:

URL url = getClass().getClassLoader().getResource(dir);
于 2012-11-04T03:17:01.540 に答える