Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Libgdx-音乐不';停不下来_Android_Libgdx - Fatal编程技术网

Android Libgdx-音乐不';停不下来

Android Libgdx-音乐不';停不下来,android,libgdx,Android,Libgdx,我有一个android应用程序,用户可以动态播放和停止音乐。我正在使用libgdx,并在类的render()方法中启动music,该方法从libgdx实现ApplicationListener 我正在“渲染方法”中检查共享首选项,以检查“播放音乐”选项是否已启用或禁用。如果启用,则创建音乐(如果尚未创建或未播放),如果禁用,则检查音乐是否正在播放-如果正在播放,则调用music.stop()。但是,即使在调用music.stop()之后,音乐仍会继续播放。我试图设置音乐。设置循环(错误),但音乐

我有一个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()方法中的条件中删除。谢谢很高兴听你这么说