前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >实时音视频开发学习12 - web端API

实时音视频开发学习12 - web端API

原创
作者头像
金林学音视频
发布于 2020-08-28 08:09:04
发布于 2020-08-28 08:09:04
1.8K0
举报

浏览器端API

版本日志

从2019年10月11日开始,浏览器端API版本从4.0.0版本升至4.6.2版本。中间修复unpublish成功后又重新publish失败报错问题,修复上行 peerConnection 断开时没有打印日志的问题修复 getTransportStats 接口返回的 rtt 值为 NAN 的问题等。增加了NETWORK_QUALITY 事件,增加部署环境自动检测,对createClient 增加 streamId userdefinerecordid 字段等优化了。优化上行码率调控逻辑,优化 switchRole 参数校验逻辑,优化上行网络质量计算逻辑,优化错误提示信息等。以下内容为web端的核心内容和代码中未体现的内容。

错误代码

错误代码包括错误码定义、账号错误信息以及常见报错和处理方式。

错误码定义

错误码常见报错为进房失败、用户被提出房间和远端流订阅超时,分别对应0x4004、0x4040和0x4042。

账号相关错误

账号错误主要值账号系统发生错误错误代码以7开头,主要分为大块方面,userSig账号错误、内部错误、sdkAppId账号问题、请求报错、验证和票据等问题。详细如下:

常见报错处理

这里记录了一些报错时的报错信息,如获取麦克风权限被拒绝,则需用户开启麦克风才能进行音频通话。

API概述

浏览器端的API主要分为8个内容:Web SDK 的主入口TRTC,音视频客户端对象client,音视频流stream,本地视频流localStream,远端音视频流remoteStream,客户端事件列表以及错误对象和错误码。

TRTC

通过 TRTC 方法可以创建一个实时音视频通信的客户端对象 (Client) 和本地音视频流对象 (Stream)。 TRTC 方法还可以检测浏览器的兼容性,是否支持屏幕分享,以及设置日志级别及日志上传。

checkSystemRequirements,用于检测TRTC Web SDK是否兼容浏览器,常用于创建客户端对象后对其进行检测。

isScreenShareSupported,检测浏览器是否支持屏幕分享,需要在创建屏幕分享流之前调用该方法检查当前浏览器是否支持屏幕分享。

getDevices、getCameras和getMicrophones用于获取设备数据,但出于安全考虑,设备信息需要得到用户的允许,否则返回label和deviceId 字段可能都是空的。主要用于创建本地流对象时获得设备参数。

getSpeakers返回扬声器设备列表,同getDevices也是返回一个MediaDeviceInfo数组对象,什么是MediaDeviceInfo数组呢?它是用于描述单个媒体输入或输出设备的信息,一共有四个属性。deviceId持久保存代表设备的标识符;groupId组标志,对同一物理设备具有相同的组标志;kind用于枚举"videoinput","audioinput"或"audiooutput";label用于描述设备标签。

setLogLevel和enableUploadLog用于设置输出日志等级和上传日志,便于线上定

为问题。日志等级包含六种类型,为保证定位准确,需要将日志设置为WARN。

方法 设置

Client模块

setProxyServer()用于部署代理服务

on/off用于绑定和取消事件。绑定事件如绑定peer-join、subscribe等,off可以解除某一个事件或者通过“*”解除所有事件绑定。

getRemoteMuteState获取当前房间内远端用户视频mute的状态列表,返回一个remoteMuteState数组列表。

getTransportStats用于获取当前网络传输状况统计数据,传递一个state参数,表明RTT延时时间。可以用于实时的网路传输监听。由于该方法需要在publish之后使用,在实际业务中,我们可以在登录之后再实时监听客户端对象的getTransportStats方法。见demo10

getLocalAudioStats用于获取当前已发布本地流的音频统计数据,该方法也是需要再publish之后调用,因此也可以再登录之后使用。

Stream

tream 音视频流,一个 Stream 中最多只能同时包含一个音频 track 和一个视频 track。这里主要介绍三个属性,setAudioOutput用于获取输出声音设备,是一个异步函数,设备标志需要通过getSpeakers获取。

setAudioVolume用于设置播放的音量大小,音量大小再0~1之间取值。

getAudioLevel用于获取当前音量大小,只有当本地流或远端流中有音频数据时才有效。音量大小为number类型,通常认为值大于0.1为用户在说话。

getVideoFrame用于当前视频的帧,该方法需要在play方法后调用,并且stream中有视频流。其返回的类型时dataURL类型。

为了减少重复性的内容,这里只讲了之前demo中没有出现的属性方法,出现了的则已经在前面已经叙述过了。另外,stream对象属性通常需要带上“_”,因此获取属性的时候需要注意。在写demo时可以时常对其进行一个打印,方便后期的查看。

remoteStream和localStream方法属性一样,只是它操作的位置是在监听事件的时候进行相应。

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用TRTC Web SDK实现实时音视频通话
在使用 TRTC Web SDK 中,经常需要使用到两个对象,Client 客户端对象,Stream 流对象:
yuliang
2021/03/03
3.7K0
实时音视频开发学习10 - 小程序端一
小程序端双人通话、多人会议和语音聊天室三个功能。双人通话中实现1V1视频通话,在结合Web IM SDK可实现在线问诊或客服;语音聊天室能支持多人互动语音聊天,混音、混响等声音特效,适用于狼人杀、在线语音直播等社交场景;多人会议支持多路音视频通话、大小画面和屏幕分享等功能,适用于远程培训、在线教育等。
金林学音视频
2020/08/27
1.4K0
实时音视频开发学习10 - 小程序端一
从零开始创建一个超简单的TRTC音视频通讯程序(web篇)
WebRTC 技术由 Google 最先提出,目前主要在桌面版 Chrome 浏览器、桌面版 Safari 浏览器以及移动版的 Safari 浏览器上有较为完整的支持,其他平台(例如 Android 平台的浏览器)支持情况均比较差。
F颜
2020/06/19
4.6K7
实时音视频开发学习5 - 实现分享、音频和音量
trtc的实践功能主要谈及两个模块,一个是web端,另一个为小程序端。这二者分别阐述了trtc的通话模式、直播模式、实时屏幕分享、云端流录制与回放CDN直播回放。
金林学音视频
2020/08/24
1.6K0
实时音视频开发学习5 - 实现分享、音频和音量
实时音视频开发学习13 - 小程序端API
小程序端API分为基础方法、发布订阅方法、视图控制方法、背景音乐方法、消息收发和其它。针对trtc-room组件来说可以传递一个config属性来打开音视频通话。
金林学音视频
2020/08/30
1.4K0
实时音视频开发学习13 - 小程序端API
实时音视频 TRTC 常见问题汇总---小程序篇
如有更多需求,或希望深度合作,可以 提交工单 或致电4009100100联系我们。
腾讯视频云-Zachary
2021/09/21
5.8K0
实时音视频 TRTC 常见问题汇总---小程序篇
实时音视频 TRTC 常见问题汇总---集成接入篇
TRTC 的日志默认压缩加密,后缀为 .xlog。日志是否加密是可以通过 setLogCompressEnabled 来控制,生成的文件名里面含 C(compressed) 的就是加密压缩的,含 R(raw) 的就是明文的。
腾讯视频云-Zachary
2019/11/01
14.5K1
实时音视频 TRTC 常见问题汇总---集成接入篇
关于 TRTC (实时音视频通话模式)在我司的实践
腾讯实时音视频(Tencent Real-Time Communication,TRTC)将腾讯 21 年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
发声的沉默者
2021/06/14
2K0
关于 TRTC (实时音视频通话模式)在我司的实践
实时音视频开发学习9 - 进房权限和画质
开启进房权限的目的是为了避免非会员模式能够进入高级房间,同时解决客户端限制被破解的问题。目前进房权限在iOS、Android、Windows、Electron、微信小程序和Chrome 浏览器都支持。
金林学音视频
2020/08/27
1.9K0
实时音视频开发学习9 - 进房权限和画质
网站在线客服系统实时语音视频聊天实战开发,利用peerjs vue.js实现webRTC网页音视频客服系统
webRTC机制和peerjs库的介绍在其他博客中已经有了很多介绍,这里我直接搬运过来
唯一Chat
2023/02/17
1.9K0
网站在线客服系统实时语音视频聊天实战开发,利用peerjs vue.js实现webRTC网页音视频客服系统
实时音视频开发学习14 - 常见问题
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
金林学音视频
2020/08/30
2.8K0
实时音视频开发学习14 - 常见问题
vue使用TRTC Web SDK实现多人会话场景
基本的对话场景请参考 使用TRTC Web SDK实现实时音视频通话 。本文主要讲述 vue 使用 TRTC Web SDK 来实现多人会议的功能,废话不多说直接上代码:(注意下方代码中 sdkAppId 请使用自己的)
yuliang
2021/03/03
2.8K0
实时音视频开发学习1 - 音视频初体验
随着移动互联网速度越来越快的发展,实时音视频的发展也越来越收到重视。腾讯实时音视频(Tencent Real-Time Communication,TRTC)经过了10多年在网络音视频技术的发展与积累,并以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,使得开发者能快速实现低成本、低延时、高品质的音频互动解决方案。
金林学音视频
2020/08/20
4.1K0
实时音视频开发学习1 - 音视频初体验
Webrtc及WEB端音视频设备获取及流处理
注意本文和之前Electron获取设备的文章有重合,但是也不是一样的,因为在Electron中我们不但能用HTML的API,也能使用Electron的API,但是WEB中就有局限了,在WEB中就实现不了直接分享主屏幕,必须用户选择。
码客说
2022/09/23
2.7K0
Webrtc及WEB端音视频设备获取及流处理
TRTC Android端开发接入学习之常见问题(十一)
V1和V2主要区别在于IM的SDK是否内嵌于TRTC中,V1线路是内嵌,而V2则可选,默认不打包IM的SDK包。V2在通话质量、线路规格、接入难度以及功能扩展上均比V1更有优势。
腾讯云-hongyang
2020/09/27
3.2K0
实时音视频 TRTC 常见问题汇总---WebRTC篇
TRTC Web SDK 对浏览器的详细支持度,您可以查看 TRTC Web SDK 对浏览器支持情况。
腾讯视频云-Zachary
2019/11/15
23.2K3
实时音视频 TRTC 常见问题汇总---WebRTC篇
TRTC学习之旅(一)--多人聊天室web篇(官方demo)
大家好,我是刚入坑TRTC的小菜鸡,黑圆圈云豆。因为我的主要技术方向是web,所以我就从基于web开发的TRTC demo进行学习和知识分享。
黑眼圈云豆
2020/06/19
4.7K0
TRTC学习之旅(一)--多人聊天室web篇(官方demo)
实时音视频开发学习4 - 实现web端运行
trtc的实践功能主要谈及两个模块,一个是web端,另一个为小程序端。这二者分别阐述了trtc的通话模式、直播模式、实时屏幕分享、云端流录制与回放CDN直播回放。
金林学音视频
2020/08/21
2.7K2
实时音视频开发学习4 - 实现web端运行
实时音视频(TRTC)常见问题
一般而言,媒体音量指播放音乐、视频的声音、游戏声音等的音量,而通话音量指打电话的音量,视频通话的音量。
腾讯云-yyuanchen
2019/09/27
13.7K1
TRTC学习之旅(二)-- 使用vue+ts集成TRTC实现多人会议室
根据上回学习了官方TRTC demo之后,已经了解了一个基础的多人会议室创建的流程,接下来我需要将自己学到的转换为自己能够运用的。
黑眼圈云豆
2020/06/24
4K3
TRTC学习之旅(二)--  使用vue+ts集成TRTC实现多人会议室
推荐阅读
相关推荐
使用TRTC Web SDK实现实时音视频通话
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档