好吧,标题可能不完全正确,但这就是我的意思:我有一个类看起来像这样的类:
package chess;
import java.io.*;
import sun.audio.*;
public class SoundPlayer
{
public static void Play(String AudioFile)
throws Exception
{
// open the sound file as a Java input stream
InputStream in = new FileInputStream(AudioFile);
// create an audiostream from the inputstream
AudioStream audioStream = new AudioStream(in);
// play the audio clip with the audioplayer class
AudioPlayer.player.start(audioStream);
}
}
我想要做的是在.jar中编译所有.java文件中的.wav文件,并能够使用此方法进行播放。要在批处理上执行此操作,我所要做的就是输入文件名,并使用当前目录。我在这里试过,但它没有用。所以,我的最后一个问题是:
在" /sound.wav"之前我需要输入什么?让我的程序从源目录中获取它?对不起,如果我没有说清楚。我一直在搜索,但我想我不知道究竟要在谷歌上搜索什么,因为我没有找到任何解释。
答案 0 :(得分:3)
您可以使用ClassLoader.getResourceAsStream()来实现
示例:
// open the sound file as a Java input stream
InputStream in = SoundPlayer.class.getClassLoader().getResourceAsStream("yoursound.wav");
// create an audiostream from the inputstream
AudioStream audioStream = new AudioStream(in);
// play the audio clip with the audioplayer class
AudioPlayer.player.start(audioStream);
答案 1 :(得分:-1)
如果你把你的wav文件放在jar的根目录中,你应该可以通过它的名字来引用它们。即
jar
|-com
|-your
|-package
|-sound.wav
您可以sound.wav
访问com.your.package.yourclass
,仅通过其名称