无法找到声音文件(.ogg)

时间:2012-03-13 22:18:10

标签: audio jmonkeyengine

我有一个名为setSound()的方法,它设置一个队列并为其添加一个轨道然后播放它。我在simpleInitGame()中调用该方法。然而没有声音播放,eclipse中的控制台说:

Mar 13, 2012 10:15:55 PM com.jmex.audio.openal.OpenALSystem setupSourcePool
INFO: max source channels: 32
Mar 13, 2012 10:15:55 PM com.jme.util.resource.ResourceLocatorTool locateResource
WARNING: Unable to locate: src/com/preston/sounds/background.ogg
Mar 13, 2012 10:15:55 PM com.jmex.audio.openal.OpenALSystem createAudioTrack
WARNING: Could not locate audio file: src/com/preston/sounds/background.ogg

以下是方法:

protected void setSound()
    {
        audio = AudioSystem.getSystem();
        sound1 = audio.createAudioTrack("src/com/preston/sounds/background.ogg", false);
        queue = AudioSystem.getSystem().getMusicQueue();
        queue.setCrossfadeinTime(0);
        queue.setRepeatType(RepeatType.ONE);
        queue.addTrack(sound1);
queue.play();

    }

我认为这不是目录,因为我的纹理位于同一目录中(除了preston / sound而不是preston / textures)。

2 个答案:

答案 0 :(得分:1)

这很可能是你的相对路径的问题。 jMonkeyEngine中ResourceLocatorTool的默认目录不是项目的根目录。尝试用绝对路径打开它,看它是否有效。

此外,您的文件位置不是明智的选择。 src文件夹用于java源文件,而不是资源。你应该把它们放在资产/声音中。见jME best practices

答案 1 :(得分:1)

最有可能你可以省略“src /”前缀。 Eclipse编译器会将所有java文件编译为类文件,并将源中的资源复制到“bin /”。 我认为JME然后使用ClassLoader.getResourceAsStream(...)从类路径加载资源。所以,尝试删除“src /".