Qualcuno sa se è possibile rilevare quando un VideoView sta eseguendo il buffering?Rileva se un VideoVisualizzazione sta effettuando il buffering
Voglio mostrare una ProgressDialog quando il video è in fase di buffering.
Finora ho provato a utilizzare un OnPreparedListener, ma funziona solo quando il video viene caricato per la prima volta. Se un video è in riproduzione e l'utente sposta la barra di scorrimento in un punto diverso, il video è ancora "preparato" anche se è in fase di buffering.
Ho anche provato (so che questo è terribile) un AsyncThread che solo occupato aspetta su 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...
}
}
Questo non funziona perché non appena si chiama start() un VideoView sembra essere considerato giocare anche se è in buffering.
L'unica soluzione che posso pensare è la creazione di una classe di tipo VideoView personalizzata in modo da poter accedere alla sua istanza MediaPlayer.
Qualche idea? Grazie per aver letto.
Il problema è risolto? –