首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中播放声音?

如何在Java中播放声音?
EN

Stack Overflow用户
提问于 2008-08-25 16:00:04
回答 12查看 365.1K关注 0票数 188

我希望能够在我的程序中播放声音文件。我应该去哪里找呢?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2008-08-25 16:03:41

我写了下面的代码,运行得很好。但我认为它只适用于.wav格式。

代码语言:javascript
复制
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();
}
票数 143
EN

Stack Overflow用户

发布于 2008-08-25 16:01:59

一个不好的例子:

代码语言:javascript
复制
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); 
票数 20
EN

Stack Overflow用户

发布于 2016-02-03 03:24:42

我不想有这么多行代码,只是为了播放一个简单的该死的声音。如果您有JavaFX包(已经包含在我的JDK8中),那么这是可行的。

代码语言:javascript
复制
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()的构造函数:

代码语言:javascript
复制
static{
    JFXPanel fxPanel = new JFXPanel();
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档