7.视频投屏

2.17.0及以后

2.17.0 版本开始,投屏功能改为使用幕享投屏实现,整体代码结构与使用方式与 2.16.6 版本相近,Demo 层投屏目录结构如下所示

//com/easefun/polyvsdk/cast
├── PolyvAllCast.java  // 幕享投屏二次封装类
├── PolyvIUIUpdateListener.java  // 封装的投屏状态回调监听器
├── PolyvScreencastManager.java  // 投屏封装工具类,操作投屏功能使用
└── widget
    ├── PolyvScreencastSearchLayout.java  // 搜索投屏Layout
    └── PolyvScreencastStatusLayout.java  // 投屏状态管理Layout

幕享投屏 SDK 依赖包放置在 demo 项目 app 模块的 libs 目录下面,SDK 的依赖引入声明如下

// 投屏sdk
implementation files("libs/wx-commonlib-1.0.1.aar")
implementation files("libs/wx-dlnasdk-1.0.1.aar")
implementation files("libs/wx-dlnasender-1.0.1.aar")
implementation files("libs/wx-jettylib-1.0.1.aar")

1.初始化

public void initScreencast() {
    // TODO appId和appSecret需与包名绑定,获取方式请咨询Polyv技术支持
    PolyvScreencastManager.init(this, <appId>, <appSecret>, new WxDlnaSenderInitCallback() {
        @Override
        public void onSuccess() {
            PolyvCommonLog.i(TAG, "initScreencast success");
            // 初始化单例
            PolyvScreencastManager.getInstance(PolyvApplication.this);
        }
        @Override
        public void onFail(int code, String msg) {
            PolyvCommonLog.i(TAG, "initScreencast fail, code = " + code + ", msg = " + msg);
        }
    });
}

上述方法的用例在PolyvApplication类的initScreencast()方法中使用到。

2. 监听器

监听器可以监听搜索设备的状态,连接的设备的状态,接收端的播放器状态,播放进度等。

3. 搜索设备相关方法

搜索设备的成功、失败等状态可以在screencastManager.setUIUpdateListener(iUIUpdateListener)onUpdateState回调中获取。

4. 获取搜索的设备信息

搜索设备成功后,可以调用以下的方法获取设备信息:

5. 连接设备相关方法

搜索设备成功后,可以调用以下的方法连接设备:

连接设备的成功、失败等状态可以在screencastManager.setActivityConnectListener(iConnectListener)onConnect回调中获取。

6. 断开连接的设备

使用以下的方法断开当前连接的设备:

连接其他的设备之前,需要先断开当前连接的设备。

7. 投放视频的方法

连接设备成功后,就可以进行视频投放,视频投放的方法如下:

加密视频的播放,需要通过PolyvScreencastHelper.getInstance().transformPlayObject 将一系列参数进行转换得到新的playerInfo和播放链接newPlayPath, 把他们使用在投屏播放的相关接口即可支持加密视频播放, 上面仅是其中示例,更多可参考幕享投屏 SDK。

视频的播放状态、播放进度可以在screencastManager.setUIUpdateListener(iUIUpdateListener)onUpdateState回调中获取。

8. 播放控制方法

视频开始播放后,可以在投屏发送端对接收端进行播放控制,播放控制有以下的方法:


2.15.0(含)- 2.16.6

点播 SDK 自 2.15.0 起,投屏 sdk 正式转移到 Demo 层。开发者可自行参考Demo,集成乐播投屏SDK,实现投屏功能。此外关于加密视频的投屏播放,需要使用接口转换,详细见下方关于《2.15.0(含)- 2.16.6# 7.播放视频的方法》的集成描述。

关于旧版的点播投屏仍旧可以使用,但投屏sdk不再维护更新。

注意事项:请勿同时使用点播 SDK 2.15.0+ 和旧版投屏SDK,否则会有冲突

2.15.0中Demo集成乐播投屏4.00.13,为兼容Android 10,需将投屏SDK所在service设置为前台服务,故乐播投屏在4.0+开始要求开发者设置compileSdkVersion 29 ,一般情况要求targetSdkVersion总是小于或等于compileSdkVersion

如果是旧版投屏 SDK 升级的,可以移除投屏依赖,直接复制 Demo 层代码和 lib 中的投屏 aar。PolyvScreencastManager 等同于旧版的 PolyvScreencastHelper,可以参考使用,投屏播放url请参考本小节中《7.播放视频的方法》,查看变更内容。

新集成的开发者可以忽略,直接移植相关Demo代码,或者自行集成乐播SDK,进行投屏播放。播放加密视频需要参考本小节中《7.播放视频的方法》。

Demo层投屏目录结构如下所示

1.初始化

上述方法的用例在PolyvApplication类的initScreencast()方法中使用到。

2. 监听器

监听器可以监听搜索设备的状态,连接的设备的状态,接收端的播放器状态,播放进度等。

3. 搜索设备相关方法

搜索设备的成功、失败等状态可以在screencastManager.setUIUpdateListener(iUIUpdateListener)onUpdateState回调中获取。

4. 获取搜索的设备信息

搜索设备成功后,可以调用以下的方法获取设备信息:

5. 连接设备相关方法

搜索设备成功后,可以调用以下的方法连接设备:

连接设备的成功、失败等状态可以在screencastManager.setActivityConenctListener(iConnectListener)onConnect回调中获取。

6. 断开连接的设备

使用以下的方法断开当前连接的设备:

连接其他的设备之前,需要先断开当前连接的设备。

7. 投放视频的方法

连接设备成功后,就可以进行视频投放,视频投放的方法如下:

目前连接设备成功后,需要延迟3秒才能进行视频投放,否则投放加密视频可能会失败。

加密视频的播放,需要通过PolyvScreencastHelper.getInstance().transformPlayObject将一系列参数进行转换得到新的lelinkPlayerInfo和播放链接newPlayPath,把他们使用在投屏播放的相关接口即可支持加密视频播放,上面仅是其中示例,更多可参考乐播投屏SDK。注意这里进行转换的是点播SDK里面的PolyvScreencastHelper,请勿同时集成旧版投屏SDK。

视频的播放状态、播放进度可以在screencastManager.setUIUpdateListener(iUIUpdateListener)onUpdateState回调中获取。

8. 播放控制方法

视频开始播放后,可以在投屏发送端对接收端进行播放控制,播放控制有以下的方法:


2.15.0以前

1. 初始化

上述方法的用例在PolyvApplication类的initScreencast()方法中使用到。

2. 监听器

监听器可以监听搜索设备的状态,连接的设备的状态,接收端的播放器状态,播放进度等。

3. 搜索设备相关方法

搜索设备的成功、失败等状态可以在screencastHelper.setUIUpdateListener(iUIUpdateListener)onUpdateState回调中获取。

4. 获取搜索的设备信息

搜索设备成功后,可以调用以下的方法获取设备信息:

5. 连接设备相关方法

搜索设备成功后,可以调用以下的方法连接设备:

连接设备的成功、失败等状态可以在screencastHelper.setActivityConenctListener(iConnectListener)onConnect回调中获取。

6. 断开连接的设备

使用以下的方法断开当前连接的设备:

连接其他的设备之前,需要先断开当前连接的设备。

7. 投放视频的方法

连接设备成功后,就可以进行视频投放,视频投放的方法如下:

目前连接设备成功后,需要延迟3秒才能进行视频投放,否则投放加密视频可能会失败。

视频的播放状态、播放进度可以在screencastHelper.setUIUpdateListener(iUIUpdateListener)onUpdateState回调中获取。

8. 播放控制方法

视频开始播放后,可以在投屏发送端对接收端进行播放控制,播放控制有以下的方法:

Last updated

Was this helpful?