Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >实时音视频开发学习13 - 小程序端API

实时音视频开发学习13 - 小程序端API

原创
作者头像
金林学音视频
发布于 2020-08-30 09:32:19
发布于 2020-08-30 09:32:19
1.4K0
举报

小程序端API

小程序API分为基础方法、发布订阅方法、视图控制方法、背景音乐方法、消息收发和其它。针对trtc-room组件来说可以传递一个config属性来打开音视频通话

基础方法

基础方法包含on、off、enterRoom和exitRoom,on和off用于监听和取消监听事件列表,接收一个回调函数

需要注意的是,为避免漏掉组件派发的事件,需要在enterRoom前监听事件。on参数列表

enterRoom进入房间,调用参数必须传入roomID,类型为Number,可以随机生成,取值范围在1 – 4294967295。返回值为一个promise,因此需要进行异步的等待。而异步的过程往往不能明确知道事件进程到哪里,因此可以借助let/await方法。

exitRoom用于停止推流和订阅所有远端音视频,并退出房间。但需要注意的是由于微信最新版本小程序引擎限制,请勿在onHide()回调函数中调用 exitRoom(),会导致各种状态紊乱的bug。使用方法同enterRoom

发布订阅方法

该模块中包含了本地音视频的发布和取消发布,订阅/取消远端音视频流和获取远端用户列表三个模块。

publishLocalVideo和publishLocalAudio用于发布本地的音视频流,采集本地摄像头和麦克风,需要单独写,都是返回一个promise。在用户进房成功后,监听到LOCAL_JOIN便能进行开启。

需要注意的是,如果是纯音频沟通场景则不需要调用publishLocalVideo。

对应取消发布音视频,则在退房exitRoom的时候调用即可。

subscribeRemoteVideo用于订阅远端用户视频流,并进行播放。该属性许传递两个参数userID和streamType。当监听到远端用户视频流变更REMOTE_VIDEO

_ADD时订阅远端视频。

与之相同的是subscribeRemoteAudio,订阅远端用户的音频并进行播放。不过音频用户只需要传入对应的用户ID并在REMOTE_AUDIO_ADD事件触发时打开即可。

视图控制

视图控制主要用于全屏的开启与关闭、设定远端画面显示方向和填充模式、显示或隐藏某一路视频画面、设定视频画面左边和尺寸以及制定视频画面的层级。视图的操控让语音通话变得更加人性化。

enterFullscreen将远端用户视频切换为全屏播放,该属性需要传入userID和streamType两个属性。

我们在调试的时候可以给按钮绑定一个事件监听,并命名一个判断标志isShowFullScreen,默认为false。每当点击按钮时isShowFullScreen进行去反,然后执行对应的打开全屏操作和关闭全屏操作。

setViewOrientation用于设定远端画面的显示方向,除了传递用户ID和远端用户流类型外,还需传入orientation用于判断画面显示的方向vertical或horzontal。

它的使用场景有两个,一个是在进入房间后设置画面显示的方向,另一个则是在双击触屏事件进行切换。使用方式如下

setViewFillMode设置远端画面的填充模式,该模式和web端播放模式play的第二个参数的属性objectFit类似。该属性提供两种填充方式完整显示画面contain和铺满视图fillCrop。

使用场景也是在进入房间后对画面的显示方式作出选择,在这里,我们还可以根据用户ID的不同给与不一样的填充方式。

setViewRect用于设定视频画面的坐标尺寸,但该方法仅在template:’custom’时有效。我们在自定义网格显示多个远端用户的位置时候就可以使用该方法,将远端用户视频内容显示到对应的视频窗格中。

对应案例代码如下:

背景音乐

背景音乐接口主要控制了音乐的播放、停止、重置和暂停。此外还提供了两个用于设置混音中背景音乐的音量和麦克风中的音量。

playBGM播放背景音乐,背景音乐会同麦克风采集的人声混合在一起发布到云端,即“背景混音”。目前背景音乐播放地址仅支持HTTPS协议的在线音乐和以mp3,、aac结尾的音频。

使用场景可以在视频画面获取到的一瞬间进行打开,如果要关闭可以手动在画面中使用stopBGM或者暂停pauseBGM。

setBGMVolume和setMICVolume分别用于设置混音中背景音乐的音量和麦克风的音量。音量类型为number,音量大小取值范围为0 – 1。

可以结合互动条来动态修改声音大小。

其它方面还有一个switchCamera切换本地前后摄像头和snapshot用于截取制定远端视频流或者本地视频的图像,并将其保存到系统的相册当中。

消息收发

消息的收发功能需要开通即时通信IM服务并将属性表中的enableIM选项设置为treu才能有效。API提供了发送C2C的文本消息、自定义消息,和发送群组文本消息、群组自定义消息。

sendC2CTextMessage发送C2C文本消息需要传递两个参数userID用户ID和message所传递的文本,该属性返回一个promise对象。

sendC2CCustomMessage发送自定义消息,接收一个payload属性,该属性拥有三个参数data数据字段、description消息字段说明和extension消息扩展字段。

相应代码示例:

sendGroupTextMessage发送群组消息,群组消息是向房间发送消息,在房间的所有用户都能看见。接收一个roomID房间号和一个message数据消息。

sendGroupCustomMessage发送自定义群消息,和发送自定义消息类似,只不过将属性换成了roomID,也需要传递一个payload对象,切该对象的属性也和自定义消息的payload一样。

事件表

对组件对象使用on进行事件监听,并绑定EVENT属性获取到对应的状态,并进行相关的业务逻辑。常用的有进出房事件、远端用户进出房和远端音视频流加载与移除等事件。

小程序错误码

错误码用于帮助用户快速定准错误的位置,并进行修正。如摄像头和录音禁用、音视频编码失败等。

注:更多内容请关注https://cloud.tencent.com/document/product/647/17249

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
实时音视频开发学习10 - 小程序端一
小程序端双人通话、多人会议和语音聊天室三个功能。双人通话中实现1V1视频通话,在结合Web IM SDK可实现在线问诊或客服;语音聊天室能支持多人互动语音聊天,混音、混响等声音特效,适用于狼人杀、在线语音直播等社交场景;多人会议支持多路音视频通话、大小画面和屏幕分享等功能,适用于远程培训、在线教育等。
金林学音视频
2020/08/27
1.4K0
实时音视频开发学习10 - 小程序端一
实时音视频开发学习14 - 常见问题
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
金林学音视频
2020/08/30
2.8K0
实时音视频开发学习14 - 常见问题
实时音视频开发学习11 - 小程序端二
小程序实现过程就不按照web端一步步拆分代码,而是直接讲解业务内容。核心内容可以参考trtc—room相关的API,本章内容会讲述大部分内容。地址:
金林学音视频
2020/08/28
1.4K0
实时音视频开发学习11 - 小程序端二
iOS音视频接入 - TRTC接入实时视频通话
(前面我们已经了解TRTC的基本架构和功能,现在我们就来接入实时视频通话功能,此功能和微信的一对一视频通话是一致的,需要两个角色,一个角色是主动呼叫、一个为呼叫接听,结合使用场景我们来接入此功能。
小明同学接音视频
2020/10/13
6.4K0
iOS音视频接入 - TRTC接入实时视频通话
实时音视频开发学习12 - web端API
从2019年10月11日开始,浏览器端API版本从4.0.0版本升至4.6.2版本。中间修复unpublish成功后又重新publish失败报错问题,修复上行 peerConnection 断开时没有打印日志的问题修复 getTransportStats 接口返回的 rtt 值为 NAN 的问题等。增加了NETWORK_QUALITY 事件,增加部署环境自动检测,对createClient 增加 streamId userdefinerecordid 字段等优化了。优化上行码率调控逻辑,优化 switchRole 参数校验逻辑,优化上行网络质量计算逻辑,优化错误提示信息等。以下内容为web端的核心内容和代码中未体现的内容。
金林学音视频
2020/08/28
1.8K0
实时音视频开发学习12 - web端API
实时音视频 TRTC 常见问题汇总---咨询问题篇
TRTC 是腾讯云基于 QQ 十多年来在音视频通话技术上积累,结合腾讯浏览服务 TBS WebRTC 能力与腾讯实时音视频 SDK ,为客户提供多平台互通高品质可定制化的 实时音视频互通服务 解决方案。 (1)您可以通过“crtl+F”(win)、“command+F”(mac)搜索关键字。 (2)若没有您想要的问答,欢迎在评论区提问、留言和交流,笔者会定期解答疑惑。 (3)最新产品动态与变更以官网文档为准。
TRTC小百科
2021/09/16
9K2
实时音视频开发学习5 - 实现分享、音频和音量
trtc的实践功能主要谈及两个模块,一个是web端,另一个为小程序端。这二者分别阐述了trtc的通话模式、直播模式、实时屏幕分享、云端流录制与回放CDN直播回放。
金林学音视频
2020/08/24
1.6K0
实时音视频开发学习5 - 实现分享、音频和音量
实时音视频 TRTC 常见问题汇总---集成接入篇
TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。
腾讯视频云-Zachary
2019/11/01
14.5K1
实时音视频 TRTC 常见问题汇总---集成接入篇
实时音视频(TRTC)常见问题
一般而言,媒体音量指播放音乐、视频的声音、游戏声音等的音量,而通话音量指打电话的音量,视频通话的音量。
腾讯云-yyuanchen
2019/09/27
13.7K1
实时音视频开发学习2 - TRTC底层实现机制
以上是对腾讯云TRTC产品的一个基本概述,既然知道了这个东西功能这么丰富,拿它涉及了一些什么基础技术,又是怎么实现这个音视频的原理呢?以下便是对其的一个详解。
金林学音视频
2020/08/20
3.2K1
实时音视频开发学习2 - TRTC底层实现机制
实时音视频 TRTC 常见问题汇总---小程序篇
如有更多需求,或希望深度合作,可以 提交工单 或致电4009100100联系我们。
腾讯视频云-Zachary
2021/09/21
5.9K0
实时音视频 TRTC 常见问题汇总---小程序篇
【版本发布】腾讯实时音视频TRTC SDK 6.9
新的版本围绕视频画质、直播 CDN 融合、Android 10.0 系统兼容,以及云端录制等几个方面,增加了很多新的功能特性,期待您的使用:
shixin
2020/01/21
2.8K0
实时音视频开发学习4 - 实现web端运行
trtc的实践功能主要谈及两个模块,一个是web端,另一个为小程序端。这二者分别阐述了trtc的通话模式、直播模式、实时屏幕分享、云端流录制与回放CDN直播回放。
金林学音视频
2020/08/21
2.7K2
实时音视频开发学习4 - 实现web端运行
实时音视频开发学习8 - 云端混流转码
云端混流主要用于CND直播观看和云端录制回放等场景中,需要将TRTC房间里的多路音视频流混合成一路。混流方式为MCU混流转码集群,其能将多路音视频流进行混合,并将最终生成的视频流分发给直播CDN和云端录制系统。
金林学音视频
2020/08/25
2.1K0
实时音视频开发学习8 - 云端混流转码
TRTC Android端开发接入学习之常见问题(十一)
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
腾讯云-hongyang
2020/09/27
3.2K0
使用TRTC Web SDK实现实时音视频通话
在使用 TRTC Web SDK 中,经常需要使用到两个对象,Client 客户端对象,Stream 流对象:
yuliang
2021/03/03
3.7K0
腾讯实时音视频又放大招!移动端语音聊天室组件正式来袭!
随着移动互联网技术飞速发展,语音社交逐渐崛起。越来越多的社交App增加了语音聊天功能,更有专门的语音社交软件应运而生,占据了不少“90后”“00后”的空闲时间。“音控”群体逐渐壮大,“连麦”互动更成为时下年轻人流行的社交方式。 语音聊天与文字聊天相比,更加生动有趣,且信息传递更高效;跟图片和视频相比,隐私性高、门槛更低,还能传达真实情绪。因此语音聊天已经成为远程办公和社交娱乐的沟通利器,越来越受用户喜爱。
Mosen
2020/08/05
1.8K0
腾讯实时音视频又放大招!移动端语音聊天室组件正式来袭!
腾讯实时音视频又放大招!移动端语音聊天室组件正式来袭!
随着移动互联网技术飞速发展,语音社交逐渐崛起。越来越多的社交App增加了语音聊天功能,更有专门的语音社交软件应运而生,占据了不少“90后”“00后”的空闲时间。“音控”群体逐渐壮大,“连麦”互动更成为时下年轻人流行的社交方式。 语音聊天与文字聊天相比,更加生动有趣,且信息传递更高效;跟图片和视频相比,隐私性高、门槛更低,还能传达真实情绪。因此语音聊天已经成为远程办公和社交娱乐的沟通利器,越来越受用户喜爱。
腾讯即时通信IM
2020/07/16
2.1K0
实时音视频SDK,如何实现类似微信的纯语音通话功能?
实时音视频TRTCSDK适用的业务场景是视频会议、坐席视频、在线教育等,如果您希望实现类似微信的语音通话、语音会议功能,TRTCSDK也是支持的,只需要微调几个参数就可以实现,将采集音视频的api,换成只采集音频。
腾讯云-chaoli
2019/03/05
8.2K2
实时音视频SDK,如何实现类似微信的纯语音通话功能?
实时音视频开发学习3 - 实现web端跑通知识储备
本节内容主要讲解如何快速使用SDK包,SDK集成方式,SDK目录结构解释以及在web端和小程序端进行跑通。
金林学音视频
2020/08/21
1.7K0
实时音视频开发学习3 - 实现web端跑通知识储备
推荐阅读
相关推荐
实时音视频开发学习10 - 小程序端一
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档