Android:如何获取Media Player的错误并使用它? [英] Android: How get error of Media Player and use it?

查看:128
本文介绍了Android:如何获取Media Player的错误并使用它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将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()

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

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

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆