有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

介绍

通过腾讯云 IoT Video 小程序 P2P 服务,引入 IoT Video X-P2P 插件和 P2P-Player 插件,可实现摄像头和小程序直接打洞传输视频流;配合云端的 Server SDK,可实现小程序和小程序,小程序和 App 之间的数据共享。

准备工作

申请腾讯云 IoT Video P2P 服务,获取访问密钥(联调阶段可直接使用 demo 里的密钥,正式发布时请使用我们邮件提供给您的正式密钥)。
向腾讯云 IoT Video 团队申请使用 IoT Video X-P2P 插件IoT Video P2P-Player 插件
有使用 live-player 的权限,详见 官方文档
如果使用 1v多 模式,需要将 flv 流的域名加到小程序的 request 合法域名tcp 合法域名 配置中,详见 服务器域名配置官方文档

微信版本限制

微信 8.0.10 以上,基础库 2.19.3 以上。

开发指引

开发文档

说明:
未申请过使用物联网智能视频服务(消费版),请先在 物联网智能视频服务(消费版)申请单 登记相关信息,申请产品的使用。
若已与售前架构师对接使用物联网智能视频服务(消费版),请先联系产品经理授权,后方可访问此 Demo 源码

原理介绍




0:初始化阶段: 小程序在启动时就可以调用 IoT Video P2P 插件的 init 接口,初始化 p2p 模块,入参填写腾讯云 IoT Video 分配的 appKey 和 appKeySecret 等信息。
1:小程序用户选择某个摄像头。 1-1:小程序引用 IoT Video P2P-Player,返回livePlayerContext, 可以直接对live-player的 context 进行操作。 1-2:如果是1v1,小程序调用 IoT Video P2P 插件的 startP2PService 接口,开始建立 p2p 连接。
2:小程序利用livePlayerContext触发播放。
3:插件启动播放。 3-1:P2P-Player 插件抛出拉流事件 playerStartPull 给小程序应用。 3-2:小程序应用调用 XP2P 插件的 startStream 接口,传入需要播放的摄像头 ID 和播放 URL,并设置消息接收回调和数据接收回调。
4:数据流会通过第3步设置的数据接收回调,传递给 P2P-Player 插件播放。
5:小程序用户停止播放。
6:插件终止播放。 6-1:小程序调用 P2P 插件的 stopStream、stopServiceById 终止传输数据。 6-2:小程序 Demo 或自有小程序操作 live-player 的 context,停止播放。
7:消耗。 小程序退出时,调用 IoT Video P2P 插件的 destroy 接口,销毁 p2p 模块。

小程序 Demo

Demo 地址

源码

说明:
未申请过使用物联网智能视频服务(消费版),请先在 物联网智能视频服务(消费版)申请单 登记相关信息,申请产品的使用。
若已与售前架构师对接使用物联网智能视频服务(消费版),请先联系产品经理授权,后方可访问此 Demo 源码
该体验版二维码对应 3.x.x 版本的 xp2p 插件。

Demo 使用

注意:
Demo UI 交互可能更新,但主要流程不变。
1. 进入主页面。


"X-P2P Demo IPC" 演示1V1 P2P 直连摄像头场景。
"X-P2P Demo 1vN-xntp" 和 "X-P2P Demo 1vN-tcp" 演示 1V 多 P2P 场景。
“多播放器” 演示多播放器的调用。
2. 1V1 P2P 直连摄像头场景:



如果 x-p2p 插件还未初始化,先单击 initModule 初始化。
填写 "productId"、"deviceName"、"xp2pInfo",xp2pInfo 即设备属性中的 "sys_p2p_info" 字段,可通过 获取设备属性数据的 API 获取。
“flvFile”字段可设置播放清晰度,取值参考 信令交互文档
单击 preparestartPlay 即可开始播放。
单击不加密对讲加密对讲可演示小程序语音对讲,单击挂断停止对讲。
修改信令 command 的 "cmd=xxx" 可演示自定义信令。