教你从0到1搭建小程序音视频

Demo 体验

升级微信到最新版本,发现页卡 => 小程序 => 搜索“腾讯视频云”,即可打开小程序Demo:

功能项

小程序组件

PC端体验页面

依赖的云服务

功能描述

手机直播

N/A

直播+云通讯

演示基于小程序的个人直播解决方案

PC 直播

直播+云通讯

演示课堂直播和学生互动的相关功能(需要 PC 端配合)

双人通话

直播+云通讯

演示双人视频通话功能,可用于在线客服

多人通话

N/A

直播+云通讯

演示多人视频通话功能,可用于临时会议

WebRTC

实时音视频

演示小程序和 Chrome 浏览器的互通能力

RTMP推流

N/A

直播

演示基础的 RTMP 推流功能

直播播放器

N/A

直播

演示基于 RTMP 和 FLV 协议的直播播放功能

注册小程序并开通相关接口

出于政策和合规的考虑,微信暂时没有放开所有小程序对 <live-pusher> 和 <live-player> 标签的支持:

个人账号和企业账号的小程序暂时只开放如下表格中的类目:

主类目

子类目

【社交】

直播

【教育】

在线教育

【医疗】

互联网医院,公立医院

【政务民生】

所有二级类目

【金融】

基金、信托、保险、银行、证券/期货、非金融机构自营小额贷款、征信业务、消费金融

打开 微信公众平台 注册并登录小程序,并在小程序管理后台的<font color='red'> “设置 - 接口设置” </font>中自助开通该组件权限,如下图所示:

注意:如果以上设置都正确,但小程序依然不能正常工作,可能是微信内部的缓存没更新,请删除小程序并重启微信后,再进行尝试。

安装微信小程序开发工具

下载并安装最新版本的微信开发者工具,使用小程序绑定的微信号扫码登录开发者工具。

<img style="border:0; max-width:100%; height:auto; box-sizing:content-box; box-shadow: 0px 0px 0px #ccc; margin: 0px 0px 0px 0px;" src="https://main.qcloudimg.com/raw/8e1eeee23aec979f346d4b4c05e62571.png" />

获取Demo源码并调试

  • step1: 访问 SDK + Demo,获取小程序 Demo 源码。
  • step2: 打开安装的微信开发者工具,点击【小程序项目】按钮。
  • step3: 输入小程序 AppID,项目目录选择上一步下载下来的代码目录( 注意: 目录请选择根目录,根目录包含有 project.config.json文件,请不要只选择 wxlite 目录!),点击确定创建小程序项目。
  • step4: 再次点击【确定】进入开发者工具。
  • step5: 请使用手机进行测试,直接扫描开发者工具预览生成的二维码进入。
  • step6: <font color='red'>开启调试模式</font>,体验和调试内部功能。开启调试可以跳过把这些域名加入小程序白名单的工作。

<img style="border:0; max-width:100%; height:auto; box-sizing:content-box; box-shadow: 0px 0px 0px #ccc; margin: 0px 0px 0px 0px;" src="https://main.qcloudimg.com/raw/c05e7942a54a2ad41ec2066459edb528.png" />

Demo访问的测试地址

Demo小程序会访问如下表格中的测试服务器地址,这些服务器使用的云服务是我们为大家提供的一个体验账号,平时很多客户都会在上面做测试。如果您希望使用自己的后台服务器,以免被其他客户打扰,请关注文档后一节内容:

  • <live-room> 和 <rtc-room> 相关demo需要访问如下地址:

URL

对应的服务器地址

服务器的功能描述

https://webim.tim.qq.com

IM云通讯后台服务地址

用于支持小程序里面的一些消息通讯功能

https://room.qcloud.com

RoomService后台服务地址

RoomService 是用于支撑

(视频通话)和 <live-room> (直播连麦)的房间管理逻辑

  • <webrtc-room> 相关demo需要访问如下地址:

URL

对应的服务器地址

服务器的功能描述

https://webim.tim.qq.com

IM云通讯后台服务地址

用于支持小程序里面的一些消息通讯功能

https://yun.tim.qq.com/v4/ openim/jsonvideoapp

WebRTC测试后台

用于请求进入
所需的 userSig 和 privateMapKey

https://xzb.qcloud.com/webrtc/ weapp/webrtc_room

WebRTC房间列表后台

一个简单的房间列表功能,方便Demo的测试和使用。

搭建自己的账号和后台服务器

这部分我们将介绍如何将Demo默认的测试用服务器地址,换成您自己的服务器,这样一来,您就可以使用自己的腾讯云账号实现上述功能,同时也便于您进行二次开发。

1. 搭建 <webrtc-room> 的服务器

1.1 这个服务器能做什么?
  • 点击demo里的互动课堂 <webrtc-room> 功能,您会看到一个房间列表,这个房间列表是怎么实现的呢?
  • 在看到视频房间列表以后,如果你要创建一个视频房间,或者进入一个其他人建好的视频房间,就需要为 <webrtc-room> 所对应的几个属性(sdkAppIDuserIDuserSigroomIDprivateMapKey)传递合法的参数值,这几个参数值怎么获取呢?
1.2 这个服务器要怎么搭建?
  • 下载 webrtc_server ,这是一份 java 版本的实现,根据 README.md 中的说明就可以了解怎么使用这份源码。
1.3 服务器建好了我怎么用?
  • 小程序 源码中,将 wxlite/config.js 文件中的 webrtcServerUrl 修改成:https://您自己的域名/webrtc/weapp/webrtc_room
  • 小程序实现 WebRTC 能力肯定是为了跟 Chrome 浏览器进行视频通话,浏览器端的源代码可以点击 Chrome(src) 下载到,将 component/WebRTCRoom.js 文件中的serverDomain修改成:https://您自己的域名/webrtc/weapp/webrtc_room

2. 搭建 <live-room> 和 <rtc-room> 的服务器

2.1 这个服务器能做什么?
  • <live-room> (用于直播连麦)和 <rtc-room> (用于视频通话)都是基于腾讯云 LVB 和 IM 两个基础服务实现的扩展功能,需要一个叫做 RoomService 的后台组件配合才能运行。
2.2 这个服务器要怎么搭建?
  • 下载 RoomService 的 java 版本源代码,根据 README.md 中的说明就可以了解怎么使用这份源码。
2.3 服务器建好了我怎么用?
  • 小程序 源码中,将 wxlite/config.js 文件中的 serverUrlroomServiceUrl 修改成:https://您自己的域名/roomservice/
  • 小程序如果使用 <live-room> 和 <rtc-room> 两个标签,在 PC 端就不能用 Chrome 浏览器配对了,需要改用 WebEXE 混合解决方案。将 GitHub(WebEXE) 源码中 liveroom.html、double.html文件中的RoomServerDomain修改成:https://您自己的域名/roomservice/

3. Wafer 零成本服务器部署方案 (Node.js)

如果您是一位资深的 Web 前端工程师,暂时找不到合适的服务器,但又想快速拥有自己的调试后台,可以使用腾讯云的 Wafer 功能进行零成本的一键部署方案(Wafer 只支持 Node.js 语言的后台代码),您需要你做的只是:

  • step1: 下载 小程序 源码。
  • step2: 根据一键部署指引完成部署。
  • step3: 将 GitHub(WebEXE) 源码中 liveroom.html、double.html文件中的RoomServerDomain修改成:https://您自己的域名/roomservice/

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏CRPER折腾记

NG2&4折腾记 --- 记NG2升级NG4 RC1之修正问题跑起来

再打一次辟谣:NG2->NG4不是重构,只是常规升级【统一版本而已,目前路由是3.x】, NG团队说以后不再以版本号为核心,统称angular,下半年NG5要出...

621
来自专栏潘兴颂的专栏

WEB 文件传输技术全讲解

近些年以来,技术突飞猛进,唯独文件上传这一块却貌似依然停留在IE6的年代。对于用户来说,最不能忍受的事情,大概就是上传到99%的时候突然卡住不动然后被告知要从头...

3220
来自专栏FreeBuf

Office文档嵌入对象点击执行的社工技巧

Microsoft Office相信大家都用过。Office在文档中嵌入对象极大的方便了我们的日常使用,但同时也为我们带来了众多安全问题。可以说,Office文...

986
来自专栏游戏杂谈

as3中ProgressEvent的bytesTotal始终为0

遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但byt...

841
来自专栏逸鹏说道

Microsoft 安全公告摘要(2015 年 10 月)

Microsoft 安全公告摘要(2015 年 10 月) 10(共 16)对本文的评价是有帮助 - 评价此主题 发布日期:2015 年 10 月 13 日 |...

2737
来自专栏一“技”之长

iOS8新特性扩展(Extension)应用之一——Today扩展

        基于iOS系统的安全性考虑,其应用的数据存储是通过沙盒模式进行的,要实现应用之间的数据共享十分困难,功能共享就更加棘手。在iOS8系统中,app...

512
来自专栏FreeBuf

Firefox/Chrome渗透测试插件推荐

注意:360安全浏览器有些比较不错的功能值得体验下(firefox/chrome有些功能我没能正常使用)不喜勿喷。firefox一直是各位渗透测试必备的利器,这...

4847
来自专栏腾讯玄武实验室的专栏

深入解析 DLL 劫持漏洞

2010 年 8 月,微软发布安全通报 2269637,同时网上公布了大量受影响软件的名字,DLL 劫持漏洞开始进入大家的视野。

4880
来自专栏技术博文

34款Firefox渗透测试插件

工欲善必先利其器,firefox一直是各位渗透师必备的利器,小编这里推荐34款firefox渗透测试辅助插件,其中包含渗透测试、信息收集、代理、加密解密等功能。...

34713
来自专栏沈唁志

WordPress最新版完全禁用JSON REST API输出站点信息

WordPress 从 4.4 版本开始新增的 JSON REST API 功能,通过这个 REST API 可以很轻松的获取网站的数据,可应用于其他网站、手机...

1093

扫码关注云+社区