声音无法在Java中工作

时间:2015-06-04 00:03:44

标签: java audio

过去几天我一直在用Java研究声音文件,我想我终于可以试着让声音运转起来。

我编码了一小部分,但遗憾的是,运行后没有声音播放 在某个地方是否存在我没​​有看到的错误,或者此代码无效。感谢。

import java.applet.Applet;
import java.applet.AudioClip;
import java.net.URL;

public class driver {
    public static void main ( String [] args ) throws Exception {
        URL resourceUrl = new URL("file:;///C:/Users/Jack/Desktop/Pok/pokemon.wav");
        final AudioClip clip = Applet.newAudioClip(resourceUrl);
        clip.loop();
    }
}

3 个答案:

答案 0 :(得分:3)

让我们从...开始......

URL resourceUrl = new URL("file:;///C:/Users/Jack/Desktop/Pok/pokemon.wav");

除了路径中有;不属于的事实外,还有一种更简单的方法可以从URL生成File

URL url = new File("C:/Users/Jack/Desktop/Pok/pokemon.wav").toURI().toURL();

然后转到这个......

final AudioClip clip = Applet.newAudioClip(resourceUrl);

查看您的代码,您的程序不是applet,因此您实际上不应该使用基于Applet的方法。

有关更好的方法,请先查看Sound Tutorial

可能看起来更像......

URL url = new File("C:/Users/Jack/Desktop/Pok/pokemon.wav").toURI().toURL();
AudioInputStream ais = AudioSystem.getAudioInputStream(url));
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.start();
clip.drain(); // Stop the main thread from exiting

答案 1 :(得分:0)

这是打开音频片段的正确方法:

public SoundClipTest() {
      try {
         URL url = this.getClass().getClassLoader().getResource("pokemon.wav");
         AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
         Clip clip = AudioSystem.getClip();
         clip.open(audioIn);
         clip.start();
      } catch (UnsupportedAudioFileException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      } catch (LineUnavailableException e) {
         e.printStackTrace();
      }
   }

答案 2 :(得分:0)

嗯,我认为您的网址有问题,但不确定。但是你可以尝试这个来播放声音:

String mySound = "pokemon.wav";
Media media = new Media(mySound);
MediaPlayer mp = new MediaPlayer(media);
mp.play();

你应该在你的java文件所在的文件夹中有pokemon.wav。