【发布时间】:2011-10-23 15:53:42
【问题描述】:
有谁知道是否可以检测到 VideoView 何时缓冲?
我想在视频缓冲时显示 ProgressDialog。
到目前为止,我尝试使用 OnPreparedListener,但这仅在首次加载视频时有效。如果视频正在播放并且用户将拖拽栏移动到不同的点,则视频仍处于“准备就绪”状态,即使它正在缓冲。
我也尝试过(我知道这很糟糕)一个忙于等待 isPlaying() 的 AsyncThread:
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 实例。
有什么想法吗?感谢阅读。
【问题讨论】:
-
你的问题解决了吗?
标签: android media-player android-videoview