代码之家  ›  专栏  ›  技术社区  ›  S.Queroane

如果应用程序在后台,如何停止音乐

  •  0
  • S.Queroane  · 技术社区  · 8 年前

    这是我的代码:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.vaporv2);
        if(!mediaPlayer.isPlaying()){
            mediaPlayer.start();
        }
        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                mediaPlayer.start();
            }
        });
    //toggle off and on :
        MusicButton = (ToggleButton) findViewById(R.id.toggleButton);
        MusicButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (MusicButton.isChecked() && mediaPlayer.isPlaying()) {
                    mediaPlayer.pause();
    
                } else {
                    mediaPlayer.start();
                }
            }
        });
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   Deep Patel    8 年前

    在您的活动中:

    暂停状态: 当你按下home(主页)按钮时

     @Override
        protected void onPause() {
            super.onPause();
            if(mediaPlayer!=null && mediaPlayer.isPlaying()){
                mediaPlayer.pause();
            }
        }
    

    当你回到屏幕时

    @Override
        protected void onResume() {
            super.onResume();
            if(mediaPlayer!=null && !mediaPlayer.isPlaying()){
                mediaPlayer.start();
            }
        }
    
        2
  •  0
  •   oldcode    8 年前

    由于您处于活动中,因此可以覆盖 onResume onStop

           @Override
            protected void onResume() {
                super.onResume();
            if(!mediaPlayer.isPlaying()){
                mediaPlayer.start();
            }
            }
    
            @Override
            protected void onStop() {
                super.onStop();
            mediaPlayer.pause();
            }