【Android】集成乐播SDK实现投屏功能(三)监听事件
2022-03-30 本文已影响0人
鲨鲨指挥官
设置搜索监听
LelinkSourceSDK.getInstance().setBrowseResultListener(iBrowseListener);
private IBrowseListener browserListener = new IBrowseListener() {
@Override
public void onBrowse(int resultCode, List<LelinkServiceInfo> list) {
}
};
ResultCode参数说明
| 参数 | 说明 |
|---|---|
| IBrowseListener.BROWSE_TIMEOUT | 搜索超时, 可能由于网络原因而出现, 请检查网络环境 |
| IBrowseListener.BROWSE_STOP | 当调用 stopBrowse 时返回 |
| IBrowseListener.BROWSE_SUCCESS | 搜索成功,结果只有SUCCESS时才可用,根据搜索出来的list显示列表 |
| IBrowseListener.BROWSE_ERROR_AUTH | 搜索失败,Auth错误,请检查您的网络设置或AppId和AppSecret |
设置连接监听
LelinkSourceSDK.getInstance().setConnectListener(mConnectListener);
IConnectListener mConnectListener = new IConnectListener() {
@Override
public void onConnect(LelinkServiceInfo lelinkServiceInfo, int connectType) {
// 连接成功
}
@Override
public void onDisconnect(LelinkServiceInfo lelinkServiceInfo, int what, int extra) {
String text = null;
if (what == IConnectListener.WHAT_HARASS_WAITING) {// 防骚扰,等待用户确认
// 乐播投屏防骚扰等待消息,请开发者务必处理该消息
text = lelinkServiceInfo.getName() + "等待用户确认";
} else if (what == IConnectListener.WHAT_DISCONNECT) {
switch (extra) {
case IConnectListener.EXTRA_HARASS_REJECT:// 防骚扰,用户拒绝投屏
text = lelinkServiceInfo.getName() + "连接被拒绝";
break;
case IConnectListener.EXTRA_HARASS_TIMEOUT:// 防骚扰,用户响应超时
text = lelinkServiceInfo.getName() + "防骚扰响应超时";
break;
case IConnectListener.EXTRA_HARASS_BLACKLIST:// 防骚扰,该用户被加入黑名单
text = lelinkServiceInfo.getName() + "已被加入投屏黑名单";
break;
default:
text = lelinkServiceInfo.getName() + "连接断开";
break;
}
} else if (what == IConnectListener.WHAT_CONNECT_FAILED) {
switch (extra) {
case IConnectListener.EXTRA_CONNECT_DEVICE_OFFLINE:
text = lelinkServiceInfo.getName() + "不在线";
break;
default:
text = lelinkServiceInfo.getName() + "连接失败";
break;
}
}
}
};
onConnect的connectType参数说明
| 参数 | 说明 |
|---|---|
| IConnectListener.TYPE_LELINK | Lelink 协议 |
| IConnectListener.TYPE_DLNA | DLNA 协议 |
| IConnectListener.TYPE_IM | 支持远程IM投屏的设备 |
onDisconnect的what参数说明
| 参数 | 说明 |
|---|---|
| IConnectListener.WHAT_HARASS_WAITING | 提示用户在电视上点击允许投屏 |
| IConnectListener.WHAT_DISCONNECT | 连接被断开,通过extra可判断具体的断开原因 |
| IConnectListener.WHAT_CONNECT_FAILED | 连接失败,通过extra可判断具体失败的原因 |
onDisconnect的extra参数说明
| 参数 | 说明 |
|---|---|
| IConnectListener.EXTRA_HARASS_REJECT | 防打扰状态下,被用户拒绝 |
| IConnectListener.EXTRA_HARASS_TIMEOUT | 防打扰状态下,用户未选择允许或拒绝,连接超时 |
| IConnectListener.EXTRA_HARASS_BLACKLIST | 防打扰状态下,用户被加入电视黑名单中 |
| IConnectListener.EXTRA_DISCONNECT_SUCCESS | 其他情况下的断开判断 |
| IConnectListener.EXTRA_CONNECT_ERROR_IO | 局域网设备网络不联通 |
| IConnectListener.EXTRA_CONNECT_DEVICE_OFFLINE | 设备离线 |
设置播控监听
LelinkSourceSDK.getInstance().setPlayListener(lelinkPlayerListener);
ILelinkPlayerListener playerListener = new ILelinkPlayerListener() {
/**
* 开始加载
*/
@Override
public void onLoading() {
}
/**
* 播放开始
*/
@Override
public void onStart() {
}
/**
* 暂停
*/
@Override
public void onPause() {
}
/**
* 播放完成
*/
@Override
public void onCompletion() {
}
/**
* 播放结束
*/
@Override
public void onStop() {
}
/**
* 进度调节:单位为百分比(该接口暂无回调)
*/
@Override
public void onSeekComplete(int pPosition) {
}
/**
* 保留接口
*/
@Override
public void onInfo(int what, int extra) {
}
/**
* 错误回调
*/
@Override
public void onError(int what, int extra) {
}
/**
* 音量变化回调(该接口暂无回调)
*/
@Override
public void onVolumeChanged(float percent) {
}
/**
* 播放进度信息回调
* @param duration 总长度:单位秒
* @param position 当前进度:单位秒
*/
@Override
public void onPositionUpdate(long duration, long position) {
}
};
onError的what和extra取值说明
- ILelinkPlayerListener.PUSH_ERROR_INIT:推送初始化错误
| 参数 | 说明 |
|---|---|
| ILelinkPlayerListener.PUSH_ERRROR_FILE_NOT_EXISTED | 推送的本地文件不存在 |
| ILelinkPlayerListener.PUSH_ERROR_IM_OFFLINE | 远端设备不在线 |
| ILelinkPlayerListener.PUSH_ERROR_IM_UNSUPPORTED_MIMETYPE | 远端设备不支持推送的媒体类 |
- ILelinkPlayerListener.PUSH_ERROR_PLAY:推送播放错误
| 参数 | 说明 |
|---|---|
| ILelinkPlayerListener.PUSH_ERROR_IO | 接收端无响应结果 (网络环境差的时候会回调) |
| ILelinkPlayerListener.PUSH_ERROR_NOT_RESPONSED | 接收端无响应 |
| ILelinkPlayerListener.NEED_SCREENCODE | 需要输入投屏码 |
| ILelinkPlayerListener.RELEVANCE_DATA_UNSUPPORTED | 接收端不支持透传 |
- ILelinkPlayerListener.MIRROR_ERROR_INIT:镜像初始化错误
| 参数 | 说明 |
|---|---|
| ILelinkPlayerListener.MIRROR_ERROR_UNSUPPORTED | 手机不支持镜像 |
| ILelinkPlayerListener.MIRROR_ERROR_REJECT_PERMISSION | 用户拒绝截屏授权 |
| ILelinkPlayerListener.MIRROR_ERROR_DEVICE_UNSUPPORTED | 接收端设备不支持镜像 |
| ILelinkPlayerListener.NEED_SCREENCODE | 镜像需要投屏码 |
| ILelinkPlayerListener.MIRROR_ERROR_NEED_RETRY | 请重试 |
| ILelinkPlayerListener.MIRROR_ERROR_UNSUPPORT_GRAP | 接收端不支持抢占 |
| ILelinkPlayerListener.MIRROR_ERROR_SETUP | 协议交互出错 |
-
ILelinkPlayerListener.MIRROR_ERROR_PREPARE:镜像准备错误
-
ILelinkPlayerListener.MIRROR_ERROR_CODEC :镜像编码错误
| 参数 | 说明 |
|---|---|
| ILelinkPlayerListener.MIRROR_ERROR_GET_PORT | 获取镜像端口出错 |
| ILelinkPlayerListener.GRAP_UNSUPPORTED | 设备不支持抢占 |
| ILelinkPlayerListener.MIRROR_ERROR_GET_INFO | 获取接收端信息出错 |
| ILelinkPlayerListener.NEED_SCREENCODE | 需要输入投屏码 |
| ILelinkPlayerListener.MIRROR_ERROR_PREPARE_ENCODE | 编码器出错 |
| ILelinkPlayerListener.MIRROR_ERROR_NETWORK_BROKEN | 网络断开 |
- ILelinkPlayerListener.MIRROR_ERROR_CODEC:镜像编码错误