播放器相关回调
更新时间: 2024/08/07 10:23:29
预处理回调
预处理完成后调用,可以在该回调内添加处理逻辑,该监听器用于监听播放器的预处理过程,主要包括:创建播放所需资源、获取媒体流等,当 预处理完成后,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);