音乐不会从关闭的地方恢复

时间:2016-10-06 15:06:30

标签: java android android-mediaplayer

请检查我的代码。我的音乐会重新开始,而不是从哪里重新开始  它被留下了。也请给出解决方案。 我的要求:当按下主页按钮时音乐应该暂停,并且应该从最近的动作重力列表打开它时它从关闭的位置再次开始。

 package com.example.android.mediaplayerdemonstration;

    import android.media.MediaPlayer;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;


    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onPause() {
            super.onPause();
            if (mySound != null)
                mySound.pause();
        }
        @Override
        protected void onResume() {
            super.onResume();
            if(mySound != null)
                mySound.start();
        }


        MediaPlayer mySound;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mySound = MediaPlayer.create(MainActivity.this,R.raw.sleep);
            mySound.start();
            mySound.setLooping(true);

        }



        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();

            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }

            return super.onOptionsItemSelected(item);
        }


    }

1 个答案:

答案 0 :(得分:0)

我无法发表评论,所以我会在回答这个问题。您的代码没有任何问题,对我来说运行正常。 尝试覆盖void transform(int *dst, const int *src, size_t len, int (*f)(int)) { for (size_t i = 0; i < len; ++i) dst[i] = f(src[i]); } 以检查当您按下主页按钮时或在其他时间调用它时。

onStop()
如果优先级较高的应用需要内存,则会调用

@override protected void onStop(){ super.onStop(); Log.v("test", "stopped"); } https://developer.android.com/guide/components/activities.html#Lifecycle

如果您真的需要该应用始终记住onStop()暂停的时间,可以将其保存在文件或MediaPlayer中。