我如何在java中播放wave(wav)文件

时间:2014-08-21 19:39:57

标签: java eclipse audio wave

我已经看过堆栈溢出和其他一些网站,但我真的找不到任何有用的东西。我需要的代码可以播放里面的音频文件,与我的Class.java文件相同。换句话说,我需要它来播放文件而不输入文件的确切位置,如果我将它发送给朋友,我就喜欢它。这就是我所拥有的:

import java.applet.*;
import java.net.*;
public class MainClass extends Applet {

public void init() {
  try {
     AudioClip clip = Applet.newAudioClip(
                    new URL(“file://C:/sound.wav”));
     clip.play();
  } catch (MalformedURLException murle) {
  murle.printStackTrace();
}
}

但我无法在任何地方播放它,只能播放特定的文件夹。有没有办法在不输入" URL"在文件位置之前?

2 个答案:

答案 0 :(得分:1)

我认为Applet.audioClip()旨在用于Applet,而不是桌面应用。其中一个限制是您只能使用URL来定位声音资源。另一方面the Java Sound API更通用。它允许您使用File对象以及许多其他选项来定位声音资源。

您还需要弄清楚如何引用您的文件。特别是,如果要使用相对路径,则需要确定环境将从哪个基本路径开始。 Embedding resources (images, sound bits, etc) into a Java project then use those resources会为您提供有关如何解决此问题的更多详细信息。

答案 1 :(得分:1)

更改您的网址声明,将"file://C:/sound.wav"更改为"file:C:/sound.wav"

import java.applet.*;
import java.net.*;
public class MainClass {
public static void main(String[] args) {
  try {
     AudioClip clip = Applet.newAudioClip(
                    new URL("file:C:/sound.wav"));
     clip.play();
  } catch (MalformedURLException murle) {
  murle.printStackTrace();
}}}

*我测试了它并在NetBeans IDE下运行良好