Reputation: 11
I am following a tutorial on how to code a Mario game with Brent Aureli and LibGDX. On this part (video) we started on using sound. Here is a shorted version of the code I'm using:
public static AssetManager manager;
@Override
public void create () {
manager = new AssetManager();
manager.load("mario_music.ogg", Music.class);
manager.finishLoading();
setScreen(new PlayScreen(this));
}
I have the "mario_music.ogg" in the right folder and named correctly (android/assets/mario_music.ogg) , yet I get this super long error:
E/AndroidRuntime: FATAL EXCEPTION: GLThread 19364
Process: com.davidheadrick.mariogame, PID: 12739
com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load dependencies of asset: mario_music.ogg
at com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:570)
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:375)
at com.badlogic.gdx.assets.AssetManager.finishLoading(AssetManager.java:396)
at com.davidheadrick.mariogame.MarioGame.create(MarioGame.java:38)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:275)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1550)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1278)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load dependencies of asset: mario_music.ogg
at com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:121)
at com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:90)
at com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:498)
at com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:373)
at com.badlogic.gdx.assets.AssetManager.finishLoading(AssetManager.java:396)
at com.davidheadrick.mariogame.MarioGame.create(MarioGame.java:38)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:275)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1550)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1278)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Error loading audio file: mario_music.ogg
Note: Internal audio files must be placed in the assets directory.
at com.badlogic.gdx.utils.async.AsyncResult.get(AsyncResult.java:46)
at com.badlogic.gdx.assets.AssetLoadingTask.handleAsyncLoader(AssetLoadingTask.java:119)
... 8 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error loading audio file: mario_music.ogg
Note: Internal audio files must be placed in the assets directory.
at com.badlogic.gdx.backends.android.AndroidAudio.newMusic(AndroidAudio.java:120)
at com.badlogic.gdx.assets.loaders.MusicLoader.loadAsync(MusicLoader.java:48)
at com.badlogic.gdx.assets.loaders.MusicLoader.loadAsync(MusicLoader.java:29)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:70)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:34)
at com.badlogic.gdx.utils.async.AsyncExecutor$2.call(AsyncExecutor.java:58)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
at android.content.res.AssetManager.openAssetFd(Native Method)
at android.content.res.AssetManager.openFd(AssetManager.java:346)
at com.badlogic.gdx.backends.android.AndroidFileHandle.getAssetFileDescriptor(AndroidFileHandle.java:237)
at com.badlogic.gdx.backends.android.AndroidAudio.newMusic(AndroidAudio.java:110)
at com.badlogic.gdx.assets.loaders.MusicLoader.loadAsync(MusicLoader.java:48)
at com.badlogic.gdx.assets.loaders.MusicLoader.loadAsync(MusicLoader.java:29)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:70)
at com.badlogic.gdx.assets.AssetLoadingTask.call(AssetLoadingTask.java:34)
at com.badlogic.gdx.utils.async.AsyncExecutor$2.call(AsyncExecutor.java:58)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
I have no idea why it could be doing this as I'm using the same music file he's using in the tutorial. Any help is appreciated. Thanks!
Upvotes: 1
Views: 1117
Reputation: 36
It appears to be the ("_") that you're using in your file path is the PROBLEM!. had the same problem, it seams that you cannot use Upercase letters and regular regexes and of course special chars
and check if you are specifying the path correctly. like when you declare:
manager.load("mario_music.ogg", Music.class);
the asset is located in the root folder in : android/assets/
Upvotes: 1