繁体   English   中英

按下主页按钮时如何停止Media Player

[英]How to stop the Media Player when the home button is hit

在我主要活动的应用程序中,我有一个设置为循环的媒体播放器变量。 当我按下主页按钮时,音乐会继续播放。 我宁愿发生的事情是,当用户按下主屏幕按钮时,音乐会关闭。 从我收集的内容来看,不能覆盖“主页”按钮,我尝试了onPause(),但是当我单击任意一个图像按钮时,音乐媒体播放器将停止。 有没有解决的办法? 谢谢,让我知道您是否需要我的代码。

主要活动:

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);
    }




}

您为什么不只阅读主页按钮事件并暂停或停止媒体播放器?

@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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM