有没有人知道如何检测VideoView何时正在缓冲?
我想在视频缓冲时显示一个ProgressDialog。
到目前为止,我尝试使用OnPreparedListener,但那只适用于视频第一次加载时。如果视频正在播放并且用户将滑块移动到不同的位置,则视频仍然处于“准备就绪”状态,即使它正在缓冲。
我也试过(我知道这很糟糕)使用一个AsyncThread来忙等isPlaying():
private class BufferTask extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void...voids) {
final VideoView videoView = (VideoView)findViewById(R.id.video);
while (!videoView.isPlaying()) { }
return null;
}
protected void onPostExecute(Void v) {
// Hide the dialog here...
}
}
这无法正常工作,因为一旦调用start()方法,VideoView会被认为正在播放,即使它正在缓冲。
我能想到的唯一解决方案是构建一个自定义的VideoView类型类,这样我就可以访问它的MediaPlayer实例。
有什么想法吗?谢谢阅读。