Android Libgdx-音乐不';停不下来
我有一个android应用程序,用户可以动态播放和停止音乐。我正在使用libgdx,并在类的render()方法中启动music,该方法从libgdx实现ApplicationListener 我正在“渲染方法”中检查共享首选项,以检查“播放音乐”选项是否已启用或禁用。如果启用,则创建音乐(如果尚未创建或未播放),如果禁用,则检查音乐是否正在播放-如果正在播放,则调用music.stop()。但是,即使在调用music.stop()之后,音乐仍会继续播放。我试图设置音乐。设置循环(错误),但音乐循环继续播放 这是我的密码:Android Libgdx-音乐不';停不下来,android,libgdx,Android,Libgdx,我有一个android应用程序,用户可以动态播放和停止音乐。我正在使用libgdx,并在类的render()方法中启动music,该方法从libgdx实现ApplicationListener 我正在“渲染方法”中检查共享首选项,以检查“播放音乐”选项是否已启用或禁用。如果启用,则创建音乐(如果尚未创建或未播放),如果禁用,则检查音乐是否正在播放-如果正在播放,则调用music.stop()。但是,即使在调用music.stop()之后,音乐仍会继续播放。我试图设置音乐。设置循环(错误),但音乐
public class MyAppListener implements ApplicationListener, InputProcessor {
Music music;
@Override
public void render() {
if (shouldPlayMusic) {
if (music == null || !music.isPlaying()) {
music = Gdx.audio.newMusic(Gdx.files.internal("playback.mp3"));
music.setVolume(0.5f);
music.setLooping(true);
music.play();
}
} else {
if (music != null && music.isPlaying()) {
music.setLooping(false);
music.stop();
music.dispose();
music = null;
}
}
}
奇怪的行为:
当我的shouldPlayMusic=false/true时,当我转到其他活动时,音乐将分别停止/继续,当我返回时,音乐将继续播放,而与shouldPlayMusic的值无关。这很奇怪,我可以建议您从if-else部分删除您的条件
music == null
不要创建misic inside render方法,根据所有建议,您应该在特殊的静态方法中执行此操作,因为一开始您可以在create()/show()方法中执行此操作,这可能是该条件的一些问题。如果没有帮助,就写吧。你使用的是Android还是桌面仿真器?就是这样!我在onCreate()方法中创建了音乐,并将其从render()方法中的条件中删除。谢谢很高兴听你这么说