Как остановить медиаплеер при нажатии кнопки «Домой» - PullRequest
0 голосов
/ 17 января 2012

В моем приложении в основной деятельности у меня есть переменная медиаплеера, которая установлена ​​в цикл.Когда я нажимаю кнопку домой, музыка продолжает играть.Я бы предпочел, чтобы музыка отключалась, когда пользователь нажимал кнопку «Домой».Из того, что я собрал, кнопку home нельзя переопределить, и я попробовал onPause (), но когда я нажимал любую из кнопок с изображениями, проигрыватель музыки останавливался.Есть ли обходной путь к этому?Спасибо, и дайте мне знать, если вам нужен мой код.

MainActivity:

package com.crazycastles;


import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageButton;



public class MainActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    static MediaPlayer mainSound;


    @Override 







    public void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mainSound = MediaPlayer.create(MainActivity.this, R.raw.mainscreen);
        mainSound.setLooping(true);
        mainSound.start();



        //CREATE BUTTON 1 & SOUND
        final MediaPlayer buttonSound = MediaPlayer.create(
                MainActivity.this, R.raw.swords);

        ImageButton button1 = (ImageButton) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                buttonSound.start();
                startActivity(new Intent(MainActivity.this,
                        button1Activity.class));
            }
        }); 

        ImageButton multiplayerbutton = (ImageButton) findViewById(R.id.multiplayerbutton);
        multiplayerbutton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                buttonSound.start();
                startActivity(new Intent(MainActivity.this,
                        multiplayerbuttonActivity.class));
            }
        }); 

        ImageButton optionsbutton = (ImageButton) findViewById(R.id.optionsbutton);
        optionsbutton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                buttonSound.start();
                startActivity(new Intent(MainActivity.this,
                        optionsActivity.class));
            }
        }); 


        ImageButton exitbutton = (ImageButton) findViewById(R.id.exitbutton);
        exitbutton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                buttonSound.start();
                finish();
                mainSound.stop();
                System.exit(0);

            }
        }); 





        //END OF BUTTON1 & SOUND



        }
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_HOME) {
            mainSound.pause(); //stop media player
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }




}

1 Ответ

0 голосов
/ 17 января 2012

Почему бы вам просто не прочитать событие кнопки «Домой» и приостановить или остановить медиаплеер?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        mediaPlayer.pause(); //stop media player
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
...