1

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();

    }

私のテクスチャは同じディレクトリにあるので、それはディレクトリではないと思います(プレストン/サウンドの代わりにプレストン/テクスチャを除く)。

4

2 に答える 2

1

これはおそらく相対パスの問題です。jMonkeyEngineのResourceLocatorToolのデフォルトディレクトリは、プロジェクトのルートではありません。絶対パスで開いて、機能するかどうかを確認してください。

また、ファイルの場所は賢明な選択ではありません。srcフォルダーは、リソースではなく、Javaソースファイルを対象としています。それらをアセット/サウンドに入れる必要があります。jMEのベストプラクティスを参照してください

于 2012-06-27T09:09:36.160 に答える
1

ほとんどの場合、「src/」プレフィックスは省略できます。Eclipseコンパイラーは、すべてのJavaファイルをクラスファイルにコンパイルし、さらにリソースをソースから「bin/」にコピーします。次に、JMEはClassLoader.getResourceAsStream(...)を使用してクラスパスからアセットをロードすると思います。したがって、「src/」を削除してみてください。

于 2013-05-14T20:36:59.340 に答える