如果从设备上播放视频,媒体播放器就知道它的精确长度,并通过移动中间主查找栏中的拇指来快速转发视频,这似乎是不可能的。如果播放来自互联网的流媒体视频,视频的长度是未知的,使用拇指查找会导致视频停止响应。
我想知道如何禁用拇指,直到视频被完全缓冲?然后显示它并启用快速转发。
以下是我的视频播放器代码:
setContentView(R.layout.layout_fragment_video_fullscreen);
vvVideoFullscreen = (VideoView) findViewById(R.id.vvVideoFullscreen);
rlVideoFullscreen = (RelativeLayout) findViewById(R.id.rlVideoFullscreen);
videoUri = Uri.parse(video.getUrl());
vvVideoFullscreen.setVideoURI(videoUri);
mediaController = new MediaController(this);
mediaController.setMediaPlayer(vvVideoFullscreen);
mediaController.setAnchorView(vvVideoFullscreen);
vvVideoFullscreen.setMediaController(mediaController);
vvVideoFullscreen.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
progressDialog.dismiss();
rlVideoFullscreen.setVisibility(View.VISIBLE);
vvVideoFullscreen.start();
mediaController.show(3000);
}
});
vVideoFullscreen.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
finish();
}
});
vvVideoFullscreen.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
if (vvVideoFullscreen.isPlaying()) {
vvVideoFullscreen.pause();
mediaController.hide();
} else {
vvVideoFullscreen.start();
mediaController.show();
}
}
return true;
}
}); // End of setOnTouchListener发布于 2015-01-28 07:13:23
您尝试过在您的onBufferingUpdateListener()中添加mediaplayer吗?从文件中可以看出:
public abstract void onBufferingUpdate (MediaPlayer mp, int percent)在缓冲通过逐步HTTP下载接收的媒体流时调用以更新状态。接收到的缓冲百分比表示已经缓冲或播放了多少内容。例如,当一半内容已被播放时,缓冲更新为80 %,表明接下来30 %要播放的内容已被缓冲。
因此,当这个回调被100%调用时,您知道您的视频是完全缓冲的。
若要禁用所有播放控件,只需在完成缓冲时调用mediaController.setMediaPlayer(...)。
如果您只想禁用查找拇指,我建议您实现自己的MediaController.MediaPlayerControlInterface,并对MediaPlayer对象进行所有调用。然后,通过让canSeekForward()和canSeekBackward()方法返回false,并使seekTo(int pos)方法不对您的MediaPlayer执行任何操作,可以禁用查找。
https://stackoverflow.com/questions/28046957
复制相似问题