Czy ktoś wie, czy można wykryć buforowanie wideo?Wykrywanie, czy VideoVIew buforuje
Chcę pokazać ProgressDialog, gdy wideo buforuje.
Do tej pory próbowałem używać OnPreparedListener, ale działa tylko wtedy, gdy wideo jest ładowane po raz pierwszy. Jeśli wideo jest odtwarzane, a użytkownik przesuwa pasek szorowania w inne miejsce, film jest nadal "przygotowany", mimo że jest buforowany.
Próbowałem również (wiem, że to jest straszne) AsyncThread że właśnie zajęty czeka na 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...
}
}
To nie działa, ponieważ tak szybko, jak to nazywasz początek (i) VideoView wydaje Uważa się, że gra, nawet jeśli jest buforowana.
Jedyne rozwiązanie, jakie mogę wymyślić to zbudowanie niestandardowej klasy typu VideoView, aby móc uzyskać dostęp do jej instancji MediaPlayer.
Wszelkie pomysły? Dziękuje za przeczytanie.
Czy rozwiązano problem? –