在我的示例中,我有一个视频链接列表和下一个上一个按钮。当我点击下一个列表中的下一个视频时播放。我的问题是当我点击下一个hVideoview.setVideoURI(Uri.parse(videoPath));
被叫时,需要一些时间来准备。所以在这个持续时间内,如果我再次点击下一个视频链接被调用。同时,如果之前的视频已准备就绪,则会OnPreparedListener()
执行并启动较旧的视频。我想要做的是当我点击下一步之前所有操作应该停止。
这是我的代码
public void initializeVideo(final String videoPath)
{
BaseActivity.ShowLoading(this, "Buffering...");
hVideoview.setVisibility(View.VISIBLE);
lin_webview.setVisibility(View.GONE);
new Handler(Looper.myLooper()).post(new Runnable(){
@Override
public void run(){
hVideoview.setVideoURI(Uri.parse(videoPath));
}
});
hVideoview.setOnPreparedListener(new OnPreparedListener()
{
public void onPrepared(MediaPlayer mp)
{
mp.setOnBufferingUpdateListener(HighlightsActivity.this);
mp.setOnCompletionListener(HighlightsActivity.this);
BaseActivity.StopLoadingDialog();
hVideoview.requestFocus();
hVideoview.start();
mediaFileLengthInMilliseconds = hVideoview.getDuration();
seek_bar.setMax(mediaFileLengthInMilliseconds);
primarySeekBarProgressUpdater();
imgPlay.setVisibility(View.GONE);
imgPause.setVisibility(View.VISIBLE);
}
});
}
那么有没有办法阻止OnPreparedListener()
被执行?
答案 0 :(得分:0)
在initializeVideo
方法中,在setVideoURI
if (hVideoview.isPlaying()) {
hVideoview.stopPlayback();
}