作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是库 tinySound 提供的示例
:https://github.com/finnkuusisto/TinySound/blob/master/example/TinySoundExample.java
我阅读了示例,并编写了基本代码来测试其功能:
TinySound.init();
Music forest = TinySound.loadMusic("absolutepath/day.ogg");
forest.play(true);
执行后,我得到:
Unable to find resource /absolutepath/day.ogg!
我使用Visual Studio代码工作,并且想知道为什么Java即使在输入的路径是绝对路径且资源在工作区中时也找不到文件。
/Project
|------/ResourceMusic-----/forest----day.ogg
|------/lib
|------/bin
|------/src----Main.java (location of my test of tinySound)
最佳答案
为了确认您提供的文件结构,我假设以下两个文件。
Project/src/Main.java
Project/ResourceMusic/forest/day.ogg
我会尝试以下方法:
Music forest = TinySound.loadMusic("ResourceMusic/forest/day.ogg");
但是我不是100%肯定会奏效。
TinySound
包含以下用于读取资源的代码(经过多次验证):
URL url = TinySound.class.getResource(name);
现在,如果
name
是一个相对地址,则该文件应该相对于
TinySound
类本身所在的文件夹定位。但是由于前面加上了“/”(可以通过查看源代码看到),因此使用了绝对地址。因此,项目源的顶部文件夹用作根地址。
package dodads;
import java.net.URL;
public class TestAbsoluteAddressing
{
public static void main(String[] args)
{
TestAbsoluteAddressing taa = new TestAbsoluteAddressing();
taa.doAbsTest();
}
private void doAbsTest()
{
URL url = this.getClass().getResource("myAudio.wav");
URL url2 = this.getClass().getResource("/myAudio.wav");
if (url != null) System.out.println("relative found");
else System.out.println("relative not found");
if (url2 != null) System.out.println("absolute found");
else System.out.println("absolute not found");
}
}
以下文件结构引起“相对找到”和“绝对找不到”:
ScratchPad/src/doodads/TestAbsoluteAddressing.java
ScratchPad/src/doodads/myAudio.wav
以下文件结构引起“相对找不到”和“绝对找到”:
ScratchPad/src/doodads/TestAbsoluteAddressing.java
ScratchPad/src/myAudio.wav
现在,令人担忧的是,您给我的文件结构不包含“src”文件夹。因此,我不确定我给您的地址是否可以使用。
关于java - 如何在Visual Studio代码中的tinySound中加载Sound对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62835430/
我是一名优秀的程序员,十分优秀!