如何搭建小程序音视频?

  • 回答 (6)
  • 关注 (1)
  • 查看 (657)

我没有音视频方面的基础,但想在自己的小程序中搭建音视频功能,请问该如何实现?

为啥吃兔兔为啥吃兔兔提问于
砸蛋大叔回答于

如果想将腾讯云提供的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/
梦洫蝶回答于

免费开通腾讯云服务

1 开通直播服务

1.1 申请开通视频直播服务:进入 直播管理控制台,如果服务还没有开通,则会有提示。点击申请开通,之后会进入腾讯云人工审核阶段,审核通过后即可开通。

1.2 配置直播码:直播服务开通后,进入【直播控制台】>【直播码接入】>【接入配置】(https://console.cloud.tencent.com/live/livecodemanage) 完成相关配置,即可开启直播码服务。点击【确定接入】按钮即可。

1.3 获取直播服务配置信息:从直播控制台获取bizid、pushSecretKey,后面配置服务器会用到

2. 开通云通信服务

2.1 申请开通云通讯服务:进入云通讯管理控制台,如果还没有服务,直接点击直接开通云通讯按钮即可。新认证的腾讯云账号,云通讯的应用列表是空的。点击创建应用接入按钮创建一个新的应用接入,即您要接入腾讯云IM通讯服务的App的名字,我们的测试应用名称叫做“RTMPRoom演示”。点击确定按钮,之后就可以在应用列表中看到刚刚添加的项目了。

2.2 配置独立模式:上图的列表中,右侧有一个应用配置按钮,点击这里进入下一步的配置工作,如下图所示。

2.3 获取云通讯服务配置信息:从直播控制台获取SdkAppid、accountType、privateKey、administrator,后面配置服务器会用到。

从验证方式中下载公私钥,解压出来将private_key用文本编辑器打开,如:

-----BEGIN PRIVATE KEY-----
MIGHAgEAsUj5ep7r9TVxTrZiSpXQKhRANCAASuxr7AJGiXRqGpiO7pPrLAchyORc
Y5uWCqVm+QFTn0H+ZcHP93ss3OhgZKh8pq+g7X26dW5fQkiSH1PXG/FY
zbTbMHaWCqVm+QFTn0H+QKhRANCAASuxr7AJGiXRqGpiO7pPr7jTFTmg
-----END PRIVATE KEY-----

将其转换成字符串形式如下所示,后面在server配置文件中使用:

"-----BEGIN PRIVATE KEY-----\r\n"+
"MIGHAgEAsUj5ep7r9TVxTrZiSpXQKhRANCAASuxr7AJGiXRqGpiO7pPrLAchyORc\r\n"+
"Y5uWCqVm+QFTn0H+ZcHP93ss3OhgZKh8pq+g7X26dW5fQkiSH1PXG/FY\r\n"+
"zbTbMHaWCqVm+QFTn0H+QKhRANCAASuxr7AJGiXRqGpiO7pPr7jTFTmg\r\n"+
"-----END PRIVATE KEY-----\r\n"

三、安装微信小程序开发工具

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

四、下载 Demo

访问 SDK+Demo,获取小程序 Demo 和后台源码。

五、上传和部署代码

  1. 打开第三步安装的微信开发者工具,点击【小程序项目】按钮。
  2. 输入小程序 AppID,项目目录选择上一步下载下来的代码目录,点击确定创建小程序项目。
  3. 再次点击【确定】进入开发者工具。

注意:

目录请选择 RTMPRoom 根目录。包含有 project.config.json,请不要只选择 wxlite目录!

上传代码

开发者工具:打开 Demo 代码中 server 目录下的 config.js 文件,将其中的 bizidpushSecretKeyAPIKeysdkAppIDaccountTypeadministratorprivateKey配置成上述直播服务及云通信服务里生成的值,并保存。

修改 MySQL 密码:点击界面右上角的【腾讯云】图标,在下拉的菜单栏中选择【上传测试代码】。

上传按钮:选择【模块上传】并勾选全部选项,然后勾选【部署后自动安装依赖】,点击【确定】开始上传代码。

选择模块

上传成功:上传代码完成之后,点击右上角的【详情】按钮,接着选择【腾讯云状态】即可看到腾讯云自动分配给你的开发环境域名:

查看开发域名:完整复制(包括 https://)开发环境 request 域名,然后在编辑器中打开 wxlite/config.js 文件,将复制的域名填入 url 中并保存,保存之后编辑器会自动编译小程序,左边的模拟器窗口即可实时显示出客户端的 Demo:

修改客户端配置:在模拟器中编译运行点击多人音视频进入,在右侧的console里面可以看到登录成功的log表示配置成功。

登录测试

六个六有理想有目标有追求的铂金农药玩家/ACM菜鸟/科幻渣渣作家/心理学砖家回答于

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

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

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

安装微信小程序开发工具

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

获取Demo源码并调试

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

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的测试和使用。

迷迭香别给自己太大压力回答于
  1. 开通一个云直播服务(比如腾讯云),或者自己搭建一个rtmp服务器(例如 nginx-rtmp 服务)。
  2. 生成两对 rtmp 推拉流 url :一对是用于A 端推流的 push_url_a和 用于播放A端视频的play_url_a;另一对是用于 B 端推流的 push_url_b 和 用于播放 B 端视频的 play_url_b;
  3. A端添加一个 <live-pusher> 标签,指定 mode 为 RTC,并将 url 输定设定为 push_url_a。
  4. A端添加一个 <live-player> 标签,指定 mode 为 RTC,并将 src 输定设定为 play_url_b。
  5. B端添加一个 <live-pusher> 标签,指定 mode 为 RTC,并将 url 输定设定为 push_url_b。
  6. B端添加一个 <live-player> 标签,指定 mode 为 RTC,并将 src 输定设定为 play_url_a。
龙珠粉丝255学生回答于
我是一只小小鸟回答于

腾讯云有帮助搭建音视频的解决方案,需要的话你可以试试

扫码关注云+社区

领取腾讯云代金券