簡體   English   中英

使用切換按鈕播放和暫停音樂

[英]play and pause music with toggle button

當用戶單擊MUSIC ON切換按鈕時,我正在嘗試播放音樂,而當用戶單擊MUSIC OFF時,音樂將暫停。 打開應用程序時,我還需要播放音樂。 這是我的代碼,但是不起作用:

MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.vapor);
    mediaPlayer.start();
     ..... 
    }
 MusicButton = (ToggleButton)findViewById(R.id.toggleButton);
    MusicButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(MusicButton.isChecked()){
                mediaPlayer.start();
            }
            else{
                mediaPlayer.stop();
                mediaPlayer.release();
            }
        }
    });

@Override
public void onPause() {
    mediaPlayer.stop();
    mediaPlayer.release();
    super.onPause();
}

@Override
public void onResume() {
    mediaPlayer = MediaPlayer.create(this, R.raw.vapor);
    mediaPlayer.setLooping(false);
    mediaPlayer.start();
    super.onResume();
}

錯誤日志:

com.myapp $ MainActivity $ 2.onClick(MainActivity.java:80)處android.media.MediaPlayer.start(MediaPlayer.java:1384)處android.media.MediaPlayer._start(本機方法)處的java.lang.IllegalStateException

首先,您不應在ToggleButton上使用setOnClickListener()ToggleButton具有函數setOnCheckedChangeWidgetListener來監聽compent的狀態。第二,關於您的錯誤,可能是未選中ToggleButton ,單擊它時, ToggleButton被選中並調用代碼mediaPlayer.start(); ,但您已經在onCreate()啟動了mediaPlayer,可以對其進行檢查。

暫無
暫無

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

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