播放器的相关回调

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

预处理回调

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

API原型

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

参数说明

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

示例

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

    }
};

视频大小变化回调

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

API原型

java    /**
     * 视频大小发生变化时的监听类
     *
     * @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 像素宽高比的分母

示例

java    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原型

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

参数说明

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

示例

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


        }
    };

错误回调

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

API原型

java    /**
     * 播放发生错误时的监听类
     *
     * @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 扩展错误信息

示例

java    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原型

java    /**
     * 状态监听类
     * 诸如缓存开始、缓存结束、视频第一帧、音频第一帧、拉流时网络状态码(例如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 扩展信息

示例

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

            return true;
        }
    };

拖动完成回调

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

API原型

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

参数说明

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

示例

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

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

字幕解析的回调

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

API原型

java    /**
     * 外挂字幕文件解析后的字幕的回调
     * @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 字幕文本

示例

java      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原型
  • 参数说明
  • 示例