媒体播放器按钮未重新启动

时间:2017-02-16 17:37:30

标签: android android-mediaplayer

我想制作“播放/停止”按钮。单击“播放”按钮时,必须播放歌曲并将其文本转换为“停止”,单击“停止”时,按钮文本应再次更改为“播放”,歌曲应重新开始播放一开始。

import android.media.MediaPlayer;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {
    private Button btn_playStop;
    private MediaPlayer mediaPlayer;
    private boolean flag = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setTitle("Play Music");

        mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.zara_sa);
        btn_playStop = (Button)findViewById(R.id.btn_play_stop);


        btn_playStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer.isPlaying() && flag==true){
                    stopSong();
                }
                else if (flag == false){
                    playSong();
                }
            }
        });
    }

    public void playSong(){
        mediaPlayer.start();
        btn_playStop.setText("Stop");
        flag = true;
    }
    public void stopSong() {
        mediaPlayer.stop();
        btn_playStop.setText("Play");
        flag = false;
    }
}

1 个答案:

答案 0 :(得分:0)

如果您拨打mediaPlayer.prepare();,则必须致电mediaPlayer.stop();,这样您才能第一次拨打mediaPlayer.start();,但在接下来的某个时间内,您应该在mediaPlayer.prepare();之前拨打mediaPlayer.start(); }}

public void playSong(){
    try {
        mediaPlayer.prepare();
    } catch (IOException e) {
    }
    mediaPlayer.start();
    btn_playStop.setText("Stop");
    flag = true;
}