url audioInputStream 似乎是空的
url for audioInputStream seems empty
我正在尝试使用以下代码来播放 mp3。该文件位于正确的文件夹中。打开文件时抛出异常。
有什么想法是错误的吗?
当试图在第三行打印 url 时,它给了我一个空指针异常。
我正在将 1.8 编译为 1.6 的最低兼容版本。这可能是相关的吗?
AudioInputStream audioIn = null;
URL url = this.getClass().getResource("./data/1.wav");
System.out.print(url.getFile());
try {
audioIn = AudioSystem.getAudioInputStream(url);
//audioInputStream = AudioSystem.getAudioInputStream(this.getClass().getResource(soundFile));
}
catch(Exception ex) {System.out.print("exception opening file");}
try{
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
catch(Exception ex)
{
System.out.print("exception mediaplayer");
}
}
您可以使用 Clip 对象而不是使用 String var。使用 Clip,它对我有用。
哦,我不得不将数据文件夹放在 src 目录中。
问题仍然存在:当我编译为jar 文件时,它没有找到数据文件夹。我希望用户能够将不同的东西放在那里。
A URL 可以看到 Jar,不像文件地址。因此,您应该可以使用 URL 来获取文件。
两个可能的问题:
(1) 如果文件是 .mp3 而您试图加载 .wav,当然会出现不匹配,如 1.mp3 <> 1.wav。
(2) 将数据放入src文件夹还不够。它还必须位于包含您引用的 "this" 的文件夹的子文件夹中。例如,如果您的代码在包 "foo" 中,则放置文件的位置将是 src/foo/data/1.wav.
你们有解码 .mp3 的库吗?如果是这样,像 JavaZoom 这样的东西应该可以工作。
我正在尝试使用以下代码来播放 mp3。该文件位于正确的文件夹中。打开文件时抛出异常。
有什么想法是错误的吗?
当试图在第三行打印 url 时,它给了我一个空指针异常。
我正在将 1.8 编译为 1.6 的最低兼容版本。这可能是相关的吗?
AudioInputStream audioIn = null;
URL url = this.getClass().getResource("./data/1.wav");
System.out.print(url.getFile());
try {
audioIn = AudioSystem.getAudioInputStream(url);
//audioInputStream = AudioSystem.getAudioInputStream(this.getClass().getResource(soundFile));
}
catch(Exception ex) {System.out.print("exception opening file");}
try{
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
}
catch(Exception ex)
{
System.out.print("exception mediaplayer");
}
}
您可以使用 Clip 对象而不是使用 String var。使用 Clip,它对我有用。
哦,我不得不将数据文件夹放在 src 目录中。
问题仍然存在:当我编译为jar 文件时,它没有找到数据文件夹。我希望用户能够将不同的东西放在那里。
A URL 可以看到 Jar,不像文件地址。因此,您应该可以使用 URL 来获取文件。
两个可能的问题:
(1) 如果文件是 .mp3 而您试图加载 .wav,当然会出现不匹配,如 1.mp3 <> 1.wav。
(2) 将数据放入src文件夹还不够。它还必须位于包含您引用的 "this" 的文件夹的子文件夹中。例如,如果您的代码在包 "foo" 中,则放置文件的位置将是 src/foo/data/1.wav.
你们有解码 .mp3 的库吗?如果是这样,像 JavaZoom 这样的东西应该可以工作。