直播
Android
产品介绍
简介
主要功能
产品优势
应用场景
使用限制
快速开始
推流端SDK
概述
更新日志
集成SDK
开发指南
实现流程
进阶功能
API 参考
错误码
播放器SDK
播放器产品简介
更新日志
下载 SDK 和示例代码
跑通示例项目
集成SDK
开发指南
实现播放功能
播放器相关回调
播放控制
时间戳校对方案
拉流地址预调度
音视频数据回调
API 参考
最佳实践
OBS推流使用指南
常见问题
服务协议

播放器的相关回调

更新时间: 2021/11/04 13:57:39

预处理回调

预处理完成后调用,可以在该回调内添加处理逻辑,该监听器用于监听播放器的预处理过程,主要包括:创建播放所需资源、获取媒体流等,当 预处理完成后,SDK 会回调该对象的 onPrepared 接口,若setShouldAutoplay设置为ture,则会在收到该回调的同时自动播放,若setShouldAutoplay设置为false,则需要在该回调中调用start()接口手动播放。

API原型

    /**
     * 播放器预处理监听类
     *
     * @author netease
     */
    public interface OnPreparedListener {
        /**
         * 预处理完成后调用,可以在该函数内添加处理逻辑
         *
         * @param mp 播放器实例
         */
        void onPrepared(NELivePlayer mp);
    }

参数说明

参数 类型 说明
mp NELivePlayer 播放器实例

示例

mLivePlayer.setOnPreparedListener(mPreparedListener);
OnPreparedListener mPreparedListener = new OnPreparedListener() {
    public void onPrepared(NELivePlayer mp) {

    }
};

视频大小变化回调

视频大小发生变化时的回调,该监听器用于监听当前播放的视频文件的分辨率大小,在视频文件的分辨率发生变化时会触发该回调,用户可以根据分辨率信息来调整UI布局。

API原型

    /**
     * 视频大小发生变化时的监听类
     *
     * @author netease
     */
    public interface OnVideoSizeChangedListener {
        /**
         * 视频大小发生变化时调用,可以在该函数内添加处理逻辑
         *
         * @param mp      播放器实例
         * @param width   视频宽度
         * @param height  视频高度
         * @param sar_num 像素宽高比的分子
         * @param sar_den 像素宽高比的分母
         */
        void onVideoSizeChanged(NELivePlayer mp, int width, int height,
                                int sar_num, int sar_den);
    }

参数说明

参数 类型 说明
mp NELivePlayer 播放器实例
width int 视频宽度
height int 视频高度
sar_num int 像素宽高比的分子
sar_den int 像素宽高比的分母

示例

    mLivePlayer.setOnVideoSizeChangedListener(mSizeChangedListener);

    OnVideoSizeChangedListener mSizeChangedListener = new OnVideoSizeChangedListener() {
        public void onVideoSizeChanged(NELivePlayer mp, int width, int height, int sarNum, int sarDen) {
            if (mVideoWidth == mp.getVideoWidth() && mVideoHeight == mp.getVideoHeight()) {
                return;
            }
            LogUtil.i(TAG, "onVideoSizeChanged: width = " + width + " height = " + height);
    };

播放完成回调

在播放完成后调用,该监听器用于监听播放结束的消息,对于点播文件或本地文件,播放结束后会触发该回调。对于直播来说,播放器无法判断直播是否结束,只能通过业务服务器来进行通知。若主播推流结束,播放器可能会读取不到数据超时退出,进入onError回调。

API原型

    /**
     * 播放完成的监听类
     *
     * @author netease
     */
    public interface OnCompletionListener {
        /**
         * 播放完成后调用,可以在该函数内添加处理逻辑
         *
         * @param mp 播放器实例
         */
        void onCompletion(NELivePlayer mp);
    }

参数说明

参数 类型 说明
mp NELivePlayer 播放器实例

示例

    mLivePlayer.setOnCompletionListener(mCompletionListener);
    private OnCompletionListener mCompletionListener = new OnCompletionListener() {
        public void onCompletion(NELivePlayer mp) {


        }
    };

错误回调

该监听器用于监听播放过程中发生的错误消息,发生任何错误,都会触发该回调。在播放发生错误的时候,用户想继续播放,则可以在收到该回调后释放上次播放的资源,重新初始化,播放。

API原型

    /**
     * 播放发生错误时的监听类
     *
     * @author netease
     */
    public interface OnErrorListener {
        /**
         * 播放发生错误时调用,可以在该函数内添加处理逻辑
         *
         * @param mp    播放器实例
         * @param what  错误类型,参考 NEErrorType 中的错误类型 {@link NEErrorType}
         * @param extra 附加信息
         */
        boolean onError(NELivePlayer mp, int what, int extra);
    }

参数说明

参数 类型 说明
mp NELivePlayer 播放器实例
what int 错误码
extra int 扩展错误信息

示例

    mLivePlayer.setOnErrorListener(mErrorListener);
    private OnErrorListener mErrorListener = new OnErrorListener() {
        public boolean onError(NELivePlayer mp, int what, int extra) {
            LogUtil.d(TAG, "Error: " + what + "," + extra);

            return true;
        }
    };

状态变化回调

该监听器用于监听播放器的状态消息,播放过程中状态发生变化时会触发该回调,用户可以根据自己应用层的业务逻辑来做相应的处理。比如收到NELP_BUFFERING_START消息,说明此时网络状况不好,播放处于卡顿状态,此时可以在播放界面上加载一个缓冲中的动画,等收到NELP_BUFFERING_END的消息,说明缓冲结束,可以开始播放了,此时可以把缓冲动画关闭。

API原型

    /**
     * 状态监听类
     * 诸如缓存开始、缓存结束、视频第一帧、音频第一帧、拉流时网络状态码(例如302跳转状态)等状态时的回调
     *
     * @author netease
     */
    public interface OnInfoListener {
        /**
         * 在状态变化时调用,可以在该函数内添加处理逻辑
         *
         * @param mp    播放器实例
         * @param what  状态类型,参考 NEPlayStatusType 中的状态类型 {@link NEPlayStatusType}
         * @param extra 附加信息
         */
        boolean onInfo(NELivePlayer mp, int what, int extra);
    }

参数说明

参数 类型 说明
mp NELivePlayer 播放器实例
what int 状态码
extra int 扩展信息

示例

    mLivePlayer.setOnInfoListener(mInfoListener);
    private OnInfoListener mInfoListener = new OnInfoListener() {
        public boolean onInfo(NELivePlayer mp, int what, int extra) {

            return true;
        }
    };

拖动完成回调

该监听器只适用于点播,用于监听 seek 操作完成的消息,当调用的 seekTo 方法到指定的位置播放,seek成功后会触发该回调。

API原型

   /**
     * seek操作完成时的监听类
     *
     * @author netease
     */
    public interface OnSeekCompleteListener {
        /**
         * Seek操作完成后调用,可以在该函数内添加处理逻辑
         *
         * @param mp 播放器实例
         */
        void onSeekComplete(NELivePlayer mp);
    }

参数说明

参数 类型 说明
mp NELivePlayer 播放器实例

示例

    mLivePlayer.setOnSeekCompleteListener(mSeekCompleteListener);
    private OnSeekCompleteListener mSeekCompleteListener = new OnSeekCompleteListener() {

        @Override
        public void onSeekComplete(NELivePlayer mp) {
            mSeekEndTime = System.currentTimeMillis();
        }
    };

字幕解析的回调

该监听器在是否显示外挂字幕时调用,需要设置外挂字幕路径后才能有回调。

API原型

    /**
     * 外挂字幕文件解析后的字幕的回调
     * @author netease
     */
    public interface OnSubtitleListener {
        /**
         * 回调的字幕信息
         * @param isShow 是否展示,true为显示,false为隐藏
         * @param id 字幕标号
         * @param subtitle 字幕文本
         */
        void onSubtitle(boolean isShow,int id,String subtitle);
    }

参数说明

参数 类型 说明
isShow boolean 是否展示
id int 字幕标号
subtitle String 字幕文本

示例

      private NELivePlayer.OnSubtitleListener mOnSubtitleListener = new NELivePlayer.OnSubtitleListener() {
          @Override
          public void onSubtitle(boolean isShow, int id, String subtitle) {
              LogUtil.i(TAG, "OnSubtitleListener" );
          }
      };
      mLivePlayer.setOnSubtitleListener(mOnSubtitleListener);
此文档是否对你有帮助?
有帮助
我要吐槽
  • 预处理回调
  • API原型
  • 参数说明
  • 示例
  • 视频大小变化回调
  • API原型
  • 参数说明
  • 示例
  • 播放完成回调
  • API原型
  • 参数说明
  • 示例
  • 错误回调
  • API原型
  • 参数说明
  • 示例
  • 状态变化回调
  • API原型
  • 参数说明
  • 示例
  • 拖动完成回调
  • API原型
  • 参数说明
  • 示例
  • 字幕解析的回调
  • API原型
  • 参数说明
  • 示例