LwjglApplication:无法初始化音频,禁用音频

时间:2017-06-21 22:37:48

标签: android audio libgdx

“如何解决nullpointerException”的答案决不会解决这个问题。我知道空指针异常是什么。为什么在Android工作室的libGdx中引用一个mp3文件,创建一个空指针异常。

所以我正在做Brent Aureli的Code School教程,用libGdx制作飞鸟。我正在播放视频14. https://www.youtube.com/watch?v=EaOE8rFa_8Q在视频中的2:50,他展示了他的代码。我不断收到此错误:“LwjglApplication:无法初始化音频,禁用音频”在我添加libGdx“Music”对象后运行程序时。这是完整的错误列表。一切都在上面 “线程中的异常”LWJGL应用程序“java.lang.NullPointerException” 已经出现但应用仍然运行。现在它在这一行获得了这个空指针异常:

music = Gdx.audio.newMusic(Gdx.files.internal("music.mp3"));

在create()方法中。 我到处寻找答案。我尝试将mp3手动复制并粘贴到原始目录或资源目录中。这不起作用。在这里:Why does android studio not recognize .wav / .mp3 files, 是如何处理这个问题的一个很好的例子。 我的代码:

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.mygdx.game.states.GameStateManager;
import com.mygdx.game.states.MenuState;

public class FlappyDemo extends ApplicationAdapter {
public static final int WIDTH = 480;
public static final int HEIGHT = 800;

public static final String TITLE = "Flappy Bird";

private GameStateManager gsm;
private SpriteBatch batch;
Texture img;
private Music music;

@Override
public void create () {
    batch = new SpriteBatch();
    gsm = new GameStateManager();
    music = Gdx.audio.newMusic(Gdx.files.internal("music.mp3"));
    music.setLooping(true);
    music.setVolume(0.1f);
    music.play();
    gsm.push(new MenuState(gsm));
    Gdx.gl.glClearColor(1, 0, 0, 1);

}

@Override
public void render () {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    gsm.update(Gdx.graphics.getDeltaTime());
    gsm.render(batch);

}

@Override
public void dispose () {
    batch.dispose();
    img.dispose();
    music.dispose();
}

}

资产中的所有png文件都可以正常工作。我在Android Studio中放的任何mp3都有一个“?”符号作为图标 如果有人有任何想法,将非常感激。

0 个答案:

没有答案