Android:如何获取Media Player的错误并使用它?

时间:2016-08-11 10:35:47

标签: android media-player surfaceview

我将SurfaceView用于视频播放器

如果在流中未加载视频,则在logcat查看错误info(701,0)

如何获取info(701,0)并使用它?

  

示例:

if(error == 701){
   ....
}

1 个答案:

答案 0 :(得分:5)

是的,你可以使用 @SpringBootTest(classes = {Application.class}, webEnvironment = WebEnvironment.RANDOM_PORT) public class MyTest { @LocalServerPort int randomServerPort; @LocalManagementPort int randomManagementPort; 到你的VideoView并处理那里的错误。这是一个例子:

setOnErrorListener(..)

编辑:701是一个信息,而不是错误,因此要处理信息,您需要附加信息监听器 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; } }

https://developer.android.com/reference/android/widget/VideoView.html#setOnInfoListener(android.media.MediaPlayer.OnInfoListener)

并遵循与错误侦听器相同的模式。这是一个例子:

setInfoListener()

请注意,这需要最低的API为17.以及对您要查找的内容的引用:

https://developer.android.com/reference/android/media/MediaPlayer.html#MEDIA_INFO_BUFFERING_START

希望这很有用。