关闭应用程序时如何停止声音

How stop the sound sounds when I close the app

当我关闭 app.or 按后退按钮时,我无法停止声音。声音在后台播放,没有任何小部件可以停止声音,所以这些是我的代码。如何解决这个问题。我需要什么? 谢谢:)

public class MainActivity extends AppCompatActivity {

   MediaPlayer s1;  Button agackakan;
   MediaPlayer s2;  Button getCam_bastankarasi;



  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView (R.layout.activity_main);



        s1 = MediaPlayer.create(MainActivity.this,ormann_agackakani_taklama);
        s2 = MediaPlayer.create(MainActivity.this, R.raw.cam_bastankarasi);


    agackakan=(Button) findViewById ( R.id.agackakan);
    getCam_bastankarasi= (Button) findViewById (R.id.cambastankarasi);


    agackakan.setOnClickListener(new View.OnClickListener () {
        @Override
        public void onClick(View v) {
            s1.start();

        }   });   

    getCam_bastankarasi.setOnClickListener(new View.OnClickListener () {
        @Override
        public void onClick(View v) {
            s2.start();

        }   });  

您必须覆盖 activity

onPause()

将此代码写入您的 activity class...

 @Override
    protected void onPause()
    {
       super.onPause();
       if(s1.isPlaying()){
            s1.stop();
            s1.release();
            }
       if(s2.isPlaying()){
            s2.stop();
            s2.release();
            }
    }

要在您的应用程序发送到后台时使 MediaPlayer 静音,您可以在每个 activity 的 onPause()onStop() 上调用此代码在您的申请中:

public static void muteIfSentToBackground(final Context context) {
        ActivityManager am = (ActivityManager)     context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
    if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (!topActivity.getPackageName().equals(context.getPackageName())) {
            if(s1 != null){
                s1.stop();
                s1.release();
                s1 =null;
            }
            if(s2 != null){
                s2.stop();
                s2.release();
                s2 = null;
            }
        }
    }
}

希望对您有所帮助

    @Override
    protected void onPause() {
        super.onPause();
        muteIfSentToBackground(this);}

    @Override
    protected void onStop() {
        super.onStop();
            muteIfSentToBackground(this);}