我希望能够在我的程序中播放声音文件。我应该去哪里找呢?
发布于 2008-08-25 16:03:41
我写了下面的代码,运行得很好。但我认为它只适用于.wav
格式。
public static synchronized void playSound(final String url) {
new Thread(new Runnable() {
// The wrapper thread is unnecessary, unless it blocks on the
// Clip finishing; see comments.
public void run() {
try {
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(
Main.class.getResourceAsStream("/path/to/sounds/" + url));
clip.open(inputStream);
clip.start();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}).start();
}
发布于 2008-08-25 16:01:59
一个不好的例子:
import sun.audio.*; //import the sun.audio package
import java.io.*;
//** add this into your application code as appropriate
// Open an input stream to the audio file.
InputStream in = new FileInputStream(Filename);
// Create an AudioStream object from the input stream.
AudioStream as = new AudioStream(in);
// Use the static class member "player" from class AudioPlayer to play
// clip.
AudioPlayer.player.start(as);
// Similarly, to stop the audio.
AudioPlayer.player.stop(as);
发布于 2016-02-03 03:24:42
我不想有这么多行代码,只是为了播放一个简单的该死的声音。如果您有JavaFX包(已经包含在我的JDK8中),那么这是可行的。
private static void playSound(String sound){
// cl is the ClassLoader for the current class, ie. CurrentClass.class.getClassLoader();
URL file = cl.getResource(sound);
final Media media = new Media(file.toString());
final MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.play();
}
注意:您需要initialize JavaFX。一种快速的方法是,在应用程序中调用一次JFXPanel()的构造函数:
static{
JFXPanel fxPanel = new JFXPanel();
}
https://stackoverflow.com/questions/26305
复制相似问题