Android:如何获取Media Player的错误并使用它? [英] Android: How get error of Media Player and use it?
问题描述
我将SurfaceView
用于视频播放器
如果在流中未加载视频,则在logcat
中显示错误info(701,0)
If in stream not load video , in logcat
view error info(701,0)
如何获取和使用info(701,0)
?
样品:
if(error == 701){
....
}
推荐答案
是的,您可以在视频视图中使用setOnErrorListener(..)
并在那里处理错误.这是一个示例:
Yes, you could use setOnErrorListener(..)
to your VideoView and handle the errors there. Here is an example:
mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
switch(what){
case MediaPlayer.MEDIA_ERROR_UNKNOWN:
// handle MEDIA_ERROR_UNKNOWN, optionally handle extras
handleExtras(extra);
break;
case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
// handle MEDIA_ERROR_SERVER_DIED, optionally handle extras
handleExtras(extra);
break;
}
return true;
}
});
...
private void handleExtras(int extra){
switch(extra){
case MediaPlayer.MEDIA_ERROR_IO:
// handle MEDIA_ERROR_IO
break;
case MediaPlayer.MEDIA_ERROR_MALFORMED:
// handle MEDIA_ERROR_MALFORMED
break;
case MediaPlayer.MEDIA_ERROR_UNSUPPORTED:
// handle MEDIA_ERROR_UNSPECIFIED
break;
case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
// handle MEDIA_ERROR_TIMED_OUT
break;
}
}
701是一个信息,而不是一个错误,因此要处理信息,您需要附加一个信息侦听器setInfoListener()
701 is an info and not an error, so to handle info you need to attach an info listener setInfoListener()
,并遵循与错误侦听器相同的模式.这是一个示例:
and follow the same pattern as the error listener. Here is an example:
mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch(what){
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
// handle info 701 here, MEDIA_INFO_BUFFERING_START corresponds to 701
break;
}
return true;
}
});
请注意,这要求最低API为17.并提供您所要查找的内容的参考:
Note that this requires a minimum API of 17. And a reference to what you are looking for:
https://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_INFO_BUFFERING_START
希望这很有用.
这篇关于Android:如何获取Media Player的错误并使用它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!