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