如何在歌曲结束前显示媒体控制器?

时间:2017-05-27 10:22:28

标签: android android-mediaplayer

我正面临着展示媒体播放器的问题。        1)隐藏媒体控制器后,仅显示媒体控制器3秒钟。        2)媒体控制器应仅在活动关闭或按下后退按钮时销毁。        3)媒体控制器正在查看活动的底部我想要更改媒体控制器查看的位置。

 public void audioplayer(View view)
{
    mediaController = new MediaController(this);


    if(mediaPlayer.isPlaying())
    {
        mediaPlayer.stop();
    }

    mediaPlayer.reset();
    try {
        mediaPlayer.setDataSource(path);

    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        mediaPlayer.setOnPreparedListener(this);
        mediaPlayer.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }

}
public void onPrepared(MediaPlayer mediaPlayer) {

    mediaPlayer.start();

    Log.d(TAG, "onPrepared");
    mediaController.setMediaPlayer((MediaController.MediaPlayerControl) this);
    mediaController.setAnchorView(findViewById(R.id.main_audio_view));

    handler.post(new Runnable() {
        public void run() {
            mediaController.setEnabled(true);
            mediaController.show();
        }
    });
}




@Override
protected void onStop() {
    super.onStop();
    mediaController.hide();
    mediaPlayer.stop();
    mediaPlayer.release();
}


@Override
public boolean onTouchEvent(MotionEvent event) {
    //the MediaController will hide after 3 seconds - tap the screen to make it appear again
    mediaController.show();
    return false;
}

//--MediaPlayerControl methods----------------------------------------------------
public void start() {
    mediaPlayer.start();
}

public void pause() {
    mediaPlayer.pause();
}

public int getDuration() {
    return mediaPlayer.getDuration();
}

public int getCurrentPosition() {
    return mediaPlayer.getCurrentPosition();
}

public void seekTo(int i) {
    mediaPlayer.seekTo(i);
}

public boolean isPlaying() {
    return mediaPlayer.isPlaying();
}

public int getBufferPercentage() {
    return 0;
}

public boolean canPause() {
    return true;
}

public boolean canSeekBackward() {
    return true;
}

public boolean canSeekForward() {
    return true;
}

@Override
public int getAudioSessionId() {
    return 0;
}
//--------------------------------------------------------------------------------

上面的媒体控制器代码。在媒体控制器只显示三秒钟。请帮我解决这个问题。媒体播放器应该显示直到歌曲结束,媒体控制器应该只在活动被破坏时隐藏

1 个答案:

答案 0 :(得分:0)

public boolean onTouchEvent(MotionEvent event)中的return语句更改为true。并删除if(mediaPlayer.isPlaying()) { mediaPlayer.stop(); } 我也是新手android希望它能帮助..