source - videoview android studio example
Cómo atrapar el error "Lo sentimos, este video no se puede reproducir" en VideoView (4)
El código que utilicé para esto:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vView = (VideoView) findViewById(R.id.videoView1);
vSource = "android.resource://com.domain.android/"
+ R.raw.introductionportrait;
vView.setVideoURI(Uri.parse(vSource));
vView.setOnErrorListener(mOnErrorListener);
vView.requestFocus();
vView.start();
}
private OnErrorListener mOnErrorListener = new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// Your code goes here
return true;
}
};
Tengo un VideoView y estoy transmitiendo videos desde un servidor remoto. La mayoría de las veces Reproduce los videos sin problemas. Pero a veces, muestra un mensaje de error "Lo sentimos, este video no se puede reproducir". Tengo la corazonada de que esto es más sobre los formatos de video compatibles. Sin embargo, no sé cuáles son los formatos admitidos. Mi pregunta es "¿Cómo puedo detectar este error (por ejemplo, evitar que aparezca el mensaje de error)"? Estoy usando Android 2.2 en este proyecto. Cualquier consejo sería muy apreciado. :)
Intente usar setOnErrorListener : la documentación dice: si no se especifica ningún detector, o si el detector devuelve falso, VideoView informará al usuario de cualquier error. , entonces supongo que si establece uno y devuelve verdadero, no mostrará el error del usuario.
Prefiero configurar oyentes de este tipo en el método onCreate. Con suerte, ayuda a alguien
videoView.setOnErrorListener(new OnErrorListener () {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.e(TAG, "Error playing video");
return true;
}
});
puede agregar el código siguiente, cerrará la pantalla de vista de video si se produce algún error. Además, no mostrará la ventana emergente predeterminada de decir que el video no puede reproducirse :)
videoview.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
finish();
return true;
}
});