android mediaplayer暂停不起作用

时间:2016-11-30 17:40:53

标签: java android

我有暂停MediaPlayer的问题。当我播放它时,点击暂停按钮它可以正常工作,但是当它播放时间超过10秒时它不会暂停。

这是我的代码:

private TextView tvState;
private MediaPlayer mediaPlayer = new MediaPlayer();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.act_player);


    ImageButton btnPlay = (ImageButton) findViewById(R.id.btnPlay);
    ImageButton btnPause = (ImageButton) findViewById(R.id.btnPause);

    TextView tvAuthor = (TextView) findViewById(R.id.tvAuthor);
    TextView tvSong = (TextView) findViewById(R.id.tvSong);
    tvState = (TextView) findViewById(R.id.tvState);

    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        String json = bundle.getString("songModel");
        final SongModel songModel = new Gson().fromJson(json, SongModel.class);

        tvAuthor.setText(songModel.getAuthor());
        tvSong.setText(songModel.getName());

        PrepareMediaPlayer(songModel);
    }


    btnPlay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!mediaPlayer.isPlaying()) {
                mediaPlayer.start();
            } else if (mediaPlayer.isPlaying()) {
                mediaPlayer.stop();
            }

            if (mediaPlayer.isPlaying()) {
                tvState.setText("Played");
            }
        }
    });

    btnPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mediaPlayer.isPlaying()) {
                mediaPlayer.pause();
            }

            if (!mediaPlayer.isPlaying()) {
                tvState.setText("Paused");
            }
        }
    });
}

public void PrepareMediaPlayer(SongModel song) {
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

    try {
        mediaPlayer.setDataSource(song.getLink());
    } catch (IOException e) {
        e.printStackTrace();
    }

    mediaPlayer.prepareAsync();
    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            if (!mp.isPlaying()) {
                mp.start();
            }
        }
    });

    mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
        @Override
        public boolean onError(MediaPlayer mp, int what, int extra) {
            return false;
        }
    });
}

我的操作系统:Android 4.0.4,API 15

0 个答案:

没有答案
相关问题