簡體   English   中英

按下主頁或后退按鈕時如何暫停/停止音樂?

[英]How to pause/stop music when home or back button is pressed?

這是我的代碼。 我對Java非常陌生,我知道這個問題已經發布了,但是我仍然沒有得到預期的前哨,所以我不得不發布。

public class MainActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final MediaPlayer policeSound = MediaPlayer.create(this, R.raw.police);
        Button policeSounds = (Button) this.findViewById(R.id.police);
        policeSounds.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (policeSound.isPlaying()){
                    policeSound.stop();
                }
                else {
                    policeSound.start();
                }
            }
        });
    }
}

我嘗試在此方法上添加onBackPressed()代碼,但無法檢測到“ policeSound”,因為在以前的方法中已檢測到它!

還有人甚至@Override我如何使用@Override注釋!

要檢測其他方法中的“ policeSound”,您需要使其成為類的字段:

private MediaPlayer policeSound;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    policeSound = MediaPlayer.create(this, R.raw.police);
    Button policeSounds = (Button) this.findViewById(R.id.police);
    policeSounds.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (policeSound.isPlaying()) {
                        policeSound.stop();
                    } else {
                        policeSound.start();
                    }
                }
            }
    );
}

在您的代碼中, PoliceSound是一個局部變量,僅在Oncreate()方法中可見,如Oleh Sokolov所說,您應將PoliceSound聲明為類的字段。

關於@Override ,您可以看到這個很好的解釋

在android studio中,當您在Java類文件中按ctrl + o時,您可以覆蓋超類方法,IDE會自動為您添加@Override

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM