Java 背景音乐自动停止

Java 背景音乐自动停止,java,android,Java,Android,我用Splash音乐制作了一个应用程序。但每当我进入应用程序的首选项时,音乐就会自动停止,直到我重新启动应用程序,音乐才会播放。当我打开一个活动时也是如此,它告诉我手机是处于“正常”还是“静音”模式 这种奇怪行为的原因是什么? 这是Splash音乐代码,我在这里检查是否播放音乐 公共课SplashScreen扩展活动{ MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { // TO

我用Splash音乐制作了一个应用程序。但每当我进入应用程序的首选项时,音乐就会自动停止,直到我重新启动应用程序,音乐才会播放。当我打开一个活动时也是如此,它告诉我手机是处于“正常”还是“静音”模式

  • 这种奇怪行为的原因是什么? 这是Splash音乐代码,我在这里检查是否播放音乐

    公共课SplashScreen扩展活动{

    MediaPlayer mp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splashscreen);
    
        mp= MediaPlayer.create(SplashScreen.this, R.raw.got);
        SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    ;
    if(pref.getBoolean("music", true))
    {
        mp.start();
    }
    if(pref.getBoolean("loop", true))
    {
        mp.setLooping(true);
    }
    Thread timer= new Thread()
    {
        public void run()
        {
        try
        {
            sleep(5000);
            Class ourclass = Class.forName("com.umer.practice2.Menu");
            Intent myintent= new Intent(SplashScreen.this,ourclass);
            startActivity(myintent);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        }
          };
        timer.start();
    }
    
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        finish();
    }
    
    }


谢谢

这是因为您正在主线程上创建和播放mediaplayer对象。当您的活动暂停时,您将完成停止mediaplayer的活动。如果您想让音乐独立于活动,请将其转移到服务中。

在服务中运行会对您有所帮助

如果你展示你的代码会更好。有很多方法可以实现你的功能你不说任何现有答案没有说的话。