我已经看过堆栈溢出和其他一些网站,但我真的找不到任何有用的东西。我需要的代码可以播放里面的音频文件,与我的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"在文件位置之前?
答案 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下运行良好