2012-03-13 1 views
1

У меня есть метод setSound(), который настраивает очередь и добавляет к ней дорожку, а затем воспроизводит ее. Я вызываю метод в simpleInitGame(). Однако звук не воспроизводится и консоль в затмении говорит:Невозможно найти звуковой файл (.ogg)

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

    } 

Я не думаю, что это каталог, как мои текстуры находятся в том же каталоге (за исключением вместо Престон/звучит его престол/текстуры).

+0

- это разрешения на каталог/файл, правильно настроенные для eclipse, чтобы иметь возможность доступа к содержимому каталога/файла? – blueberryfields

+0

Я не уверен, что вы имеете в виду, если eclipse может получить доступ к текстурам для моих фигур (например, skybox), это значит, что это хорошо для звука тоже? – Mike

ответ

1

Это скорее всего проблема с вашим относительным путем. Каталог по умолчанию ResourceLocatorTool в jMonkeyEngine не является корнем вашего проекта. Попробуйте открыть его с абсолютным путем и посмотреть, работает ли он.

Кроме того, расположение вашего файла не является разумным выбором. Папка src предназначена для исходных файлов java, а не ресурсов. Вы должны поместить их в активы/Звуки. См. jME best practices

+0

Кстати, кажется, что вы используете устаревший аудиомодуль для jME, подумайте об использовании http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:audio_environment_presets –

1

Скорее всего, вы можете опустить префикс «src /». Компилятор Eclipse будет компилировать все java-файлы в файлы классов и, кроме того, скопировать ресурсы из ваших источников в «bin /». Я думаю, что JME затем использует ClassLoader.getResourceAsStream (...) для загрузки активов из пути к классам. Итак, попробуйте удалить «src /».