Кто-нибудь знает, можно ли обнаружить, когда 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.
Любые идеи? Спасибо за чтение.