Skip to content

edit_error&info_listener

zanxiaofei edited this page Dec 7, 2017 · 4 revisions

编辑过程消息回调

KSYEditKit类中提供以下两种回调接口

  • OnInfoListener 包含编辑和合成过程中状态变更事件回调,状态码为正数
  • OnErrorListener 包含编辑和合成过程中错误事件回调,状态码为负数

2.1 状态码表

名称 数值 含义 msgs
SHORTVIDEO_EDIT_PREPARED 1 编辑视频预览准备ok N/A
SHORTVIDEO_EDIT_PREVIEW_PLAYER_INFO 6 预览播放状态信息 具体的播放信息

1.3.x版本后提供预览视频本身播放相关消息状态码,同样使用OnInfoListener返回,info状态码定义来自[播放消息定义][https://github.com/ksvc/KSYMediaPlayer_Android/wiki/KsyMediaPlayerConstants]

变量名 数值 含义
MEDIA_INFO_UNKNOWN 1 未指定的播放器信息
MEDIA_INFO_VIDEO_RENDERING_START 3 视频开始渲染
MEDIA_INFO_VIDEO_TRACK_LAGGING 700 视频复杂,解码器效率不足
MEDIA_INFO_BUFFERING_START 701 播放器开始缓存数据
MEDIA_INFO_BUFFERING_END 702 播放器缓存完毕
MEDIA_INFO_BAD_INTERLEAVING 800 视频封装有误
MEDIA_INFO_NOT_SEEKABLE 801 此视频不能seek
MEDIA_INFO_METADATA_UPDATE 802 已获得新的元数据
MEDIA_INFO_UNSUPPORTED_SUBTITLE 901 不支持此字幕
MEDIA_INFO_SUBTITLE_TIMED_OUT 902 读取字幕超时
MEDIA_INFO_VIDEO_ROTATION_CHANGED 10001 视频方向改变
MEDIA_INFO_AUDIO_RENDERING_START 10002 音频开始播放
MEDIA_INFO_SUGGEST_RELOAD 40020 建议reload
MEDIA_INFO_HARDWARE_DECODE 41000 播放器使用硬解播放视频
MEDIA_INFO_SOFTWARE_DECODE 41001 播放器使用软解播放视频
MEDIA_INFO_RELOADED 50001 reload成功

示例代码

  mEditKit.setOnInfoListener(mOnInfoListener);

  private KSYEditKit.OnInfoListener mOnInfoListener = new KSYEditKit.OnInfoListener() {
        @Override
        public Object onInfo(int type, String... msgs) {
            Log.e(TAG, "on info:" + type);
            switch (type) {
                case ShortVideoConstants.SHORTVIDEO_EDIT_PREPARED:
                    mEditPreviewDuration = mEditKit.getEditDuration();
                    mPreviewLength = mEditPreviewDuration;
                    initSeekBar();
                    initThumbnailAdapter();
                    // 启动预览后,开始片段编辑UI初始化
                    mSectionView.init(mEditPreviewDuration, mEditKit);
                    startPreviewTimerTask();
                    break;
            ......
            }
            return null;
        }

2.1 错误码表

1.3.x版本以后提供预览视频本身播放相关错误状态码,同样使用OnErrorListener的SHORTVIDEO_EDIT_PREVIEW_PLAYER_ERROR(-4)返回,error状态码定义来自[播放消息定义]

变量名 数值 含义
MEDIA_ERROR_UNKNOWN 1 未知的播放器错误
MEDIA_ERROR_SERVER_DIED 100 多媒体服务器出错
MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK 200 流媒体封装格式并不支持渐进播放
MEDIA_ERROR_IO -1004 文件或网络相关操作错误
MEDIA_ERROR_MALFORMED -1007 码流实际编码标准与文件描述不一致
MEDIA_ERROR_UNSUPPORTED -1010 播放器不支持相应编码格式
MEDIA_ERROR_TIMED_OUT -110 操作超时
MEDIA_ERROR_UNSUPPORT_PROTOCOL -10001 不支持的流媒体协议
MEDIA_ERROR_DNS_PARSE_FAILED -10002 DNS解析失败
MEDIA_ERROR_CREATE_SOCKET_FAILED -10003 创建socket失败
MEDIA_ERROR_CONNECT_SERVER_FAILED -10004 连接服务器失败
MEDIA_ERROR_BAD_REQUEST -10005 http请求返回400
MEDIA_ERROR_UNAUTHORIZED_CLIENT -10006 http请求返回401
MEDIA_ERROR_ACCESSS_FORBIDDEN -10007 http请求返回403
MEDIA_ERROR_TARGET_NOT_FOUND -10008 http请求返回404
MEDIA_ERROR_OTHER_ERROR_CODE -10009 http请求返回4xx
MEDIA_ERROR_SERVER_EXCEPTION -10010 http请求返回5xx
MEDIA_ERROR_INVALID_DATA -10011 无效的媒体数据
MEDIA_ERROR_UNSUPPORT_VIDEO_CODEC -10012 不支持的视频编码类型
MEDIA_ERROR_UNSUPPORT_AUDIO_CODEC -10013 不支持的音频编码类型
MEDIA_ERROR_VIDEO_DECODE_FAILED -10016 视频解码失败
MEDIA_ERROR_AUDIO_DECODE_FAILED -10017 音频解码失败
MEDIA_ERROR_3XX_OVERFLOW -10018 多次3xx跳转
MEDAI_ERROR_INVALID_URL -10019 无效的URL,只在播放多URL视频时出现

示例代码

 mEditKit.setOnErrorListener(mOnErrorListener);

 private KSYEditKit.OnErrorListener mOnErrorListener = new KSYEditKit.OnErrorListener() {
        @Override
        public void onError(int type, long msg) {
            switch (type) {
               ......
               default:
                    Log.d(TAG, "KSYEditKit error:" + type + "_" + msg);
                    break;
            }
        }
    };
Clone this wiki locally