Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯在线教育小程序开发实践之路

腾讯在线教育小程序开发实践之路

作者头像
用户1097444
发布于 2022-06-29 08:10:14
发布于 2022-06-29 08:10:14
9750
举报

本文作者 IMWeb 团队成员 Jay 于2019年6月21日赴北京GMTC大前端技术会议小程序专场,分享话题《 腾讯在线教育小程序开发实践之路 》演讲稿

一、腾讯在线教育小程序矩阵

首先介绍下腾讯在线教育下的3个主要业务:

  • 面向成人职业化,兴趣化学习的腾讯课堂
  • 面向小学,初高中k12领域的企鹅辅导
  • 面向少儿英语学习的ABCmouse

每个业务下都有PC Web,客户端,H5,APP这几端,来满足学生的多端上课需求。但由于教育的前身是基于QQ群视频孵化出来的,后续也是围绕QQ生态去搭建产品形态,所以在流量上面,QQ相关的流量占比较多。

我们希望能够通过小程序生态,来为教育业务带来微信端流量的增长,并且优化学生的微信端上课体验,所以我们打造了在线教育的小程序矩阵。

我们通过工具,内容型的小程序,来获取流量。比如腾讯课堂打开小程序,腾讯微课堂,企鹅速算,口语拼读等工具型小程序,并最终转化到平台小程序上。

二、小程序基础架构设计及工程化探索

上面提到的那么多小程序,我们是如何进行框架选型 以及团队在多人协作的开发中,是如何制定统一的开发规范,小程序工程化的探索呢?下面将一一介绍。

框架选型时,我们对小程序几大主流开发框架,taro, wepy, mpvue跟原生开发框架进行了对比。可以看出原生框架在CSS预处理,多端复用,管理,自动构建这几块能力对比其他框架是欠缺到。但考虑到以下几点,我们比较倾向于使用原生框架进行开发:

  • 小程序的特性更新迭代速度较快,我们希望能最快使用上最新特性,其他第三方框架可能会有迭代滞后到问题
  • 我们的多端复用需求较弱
  • 对性能调优,问题排查要求较高,希望直接操控原生API

那么以上这些开发上的缺陷,使用原生框架是否可以解决,如何解决呢?

1,CSS预处理

首先来看CSS预处理,我们是期望能够在小程序中使用到CSS预处理,包括嵌套语法,mixin,变量等以及styleLint等工具。经过调研后,我们可以直接使用postcss来写样式文件并编译处理成wxss。

并且通过引入插件,可以解决小程序样式开发中的痛点。比如postcss-url解决background-image不支持本地图片问题,将其变成base64格式;通过postcss-font-base64插件将字体变成base64格式。

2,数据管理

数据管理方面可以使用westore来接入。

3,构建

小程序的构建需要完成什么事情呢?小程序开发者工具已经提供了部分能力: ES7/ES6转ES5,NPM包管理,代码分包,组件化,打包合并。

我们借助gulp来实现图片压缩以及前面提到的Post CSS编译 为什么使用gulp而不用更流行的webpack呢?

这里补齐的能力主要涉及文件处理比较多,使用gulp开发效率较高,小程序一些官方脚手架也是使用gulp。

最后,我们选择了小程序原生框架作为我们的开发框架。并且补齐了跟其他开发框架对比欠缺的基础能力。当然,这里并非说其他框架不好,具体选择还是需要看具体的业务场景。

4,目录规范

确定好开发框架后,统一的目录规范也是团队协同开发必须约束的。

在引入npm包管理后,我们在小程序的基础目录中,通过新起了一个miniprogram目录来作为小程序代码的根目录。这是由于小程序会对nodemodules里面的包打包编译到miniprogramnpm目录,为了避免小程序的nodemodules跟其他工程化相关的nodemodules混在一起,才新起了一个文件夹来存放小程序工程代码。可以通过修改project.config.js可以配置小程序代码的根目录路径。

5,编码规范

约束好目录,那么在团队协同开发,如何维护规范化,风格统一的代码,我们希望可以团队成员开发时可以统一代码规范, 提交规范, 风格保持一致。因此,跟我们其他web项目一样,我们可以使用 eslint,stylelint,commitment,prettier等插件来对我们的代码进行约束,规范。通过git hook来在做提交时的校验检测,不通过则不允许提交。

通过Commitizen以及standard-version来自动化生成统一的版本号以及ChangeLog。会自动将你在本次版本迭代中,提交的规范化log(遵循Angular团队的commit规范:https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits )自动生成ChangeLog, 注明是特性发布,bugfix还是breakingChange,以及对应的log信息。后续我们在需要回滚或者回溯某一版本的改动时,就可以一目了然。

我们基于上面的能力以及约束规范,做成统一的脚手架,方便团队在统一的环境下快速开发,并且开源了出去( https://github.com/imweb/generator-imweb-wxapp )。

三、小程序开发实践

介绍完我们的框架选型,工程化探索,接下去分享下在线教育小程序的开发实践经历。

1,小程序音视频

第一部分是小程序音视频能力相关的实践。腾讯课堂是一个在线学习的平台,那么最核心的就是音视频直播,录播能力。那么在小程序上面,我们如何搭建课堂音视频能力呢?

1),直播场景

我们先来看未接入小程序前,腾讯课堂的直播架构。我们通过老师上行到云上,再实时下行到端上, App学生以及通过WebRTC下行到PC web学生。对于延迟要求不高的场景,我们可以将直播流旁路转码到CDN,再供用户拉流观看,以节省成本。

这是各端使用的直播协议以及延迟对比,小程序应该采用那种协议,如何接入呢?

揭秘之前,我们先来了解下小程序音视频能力的发展历史。最初,小程序音视频只有原生的video标签。意味着只能支持 HLS高延时直播场景。

2017年4月份,腾讯云与小程序达成合作,在小程序上嵌入腾讯云音视频SDK,并封装成了live-pusher,live-player标签,使小程序能够支持更低延迟的直播协议,如:rtmp, http-flv等。 因此,我们可以使用live-player来播放rtmp,http-flv协议的流媒体来播放,降低小程序直播场景上的延迟。

不过目前live-player还存在一些不足:

  • 比如全屏按钮不支持,需要自己定义。
  • 由于live-player是原生组件,因此需要通过cover-view以及一些hack方式来实现自定义控制条的全屏按钮跟视频窗口显示层级的bug
  • IOS全屏时,bindevent无效 不过小程序后面采用同层渲染的方案,解决了原生组件需要使用cover-view来解决显示层级问题,使用最新版本的基础库即可。

使用live-player大概1-2s的延迟,那么小程序上还有没更低延迟的直播方案呢?

加入你是在腾讯云上面开通了WebRTC后,可以使用wbertc-room去实现小程序上更低延迟的直播。其原理是基于live-player的RTMP,但走的高速专线,不经过CDN,降低了延迟。

(小程序接入课堂音视频的整体架构图)

2),录播场景 介绍完直播接入方案,接着讲下录播。由于版权保护,腾讯课堂录播播放采用了加密HLS。

由于录播对延迟没要求,小程序上面可以直接使用video标签来播放加密hls流。

在Web上,播放加密HLS的流程如下: 1,获取到加密HLS的m3u8地址,传给video; 2,浏览器video底层解析m3u8,发现其带有加密协议标识-EXT-X-KEY,其值是一个获取解密key的接口地址; 3,浏览器会自动发起该请求,发起请求,去获取解密key; 4,浏览器自动发起请求时,会把用户登陆态通过cookie方式带上,业务后台对cookie鉴权后返回解密key,之后浏览器拿到解密key后就可以解密播放了。 但在小程序中,由于小程序是没有cookie的,那么怎么去针对小程序发起的获取解密key请求鉴权呢?

我们通过在获取m3u8文件时,在meu8地址加入加密后的鉴权参数,并加上前缀"voddrm.token.",这样server返回m3u8文件时,会在EXT-X-KEY的请求地址上,将鉴权参数拼接进去。后面发起请求时,业务后台获取到鉴权参数,按照协商好到方式解密,即可获取到用户登陆票据进行判断是否合法用户。之后就按照之前的流程,鉴权通过即返回解密key。

2,小程序自动化发布 补齐了音视频能力后,我们项目也正常上线。由于平台功能不断增加,小程序也在按照以下流程进行迭代发布。

但是上面流程是存在一些隐藏问题的,特别对于新人,容易因疏忽导致出错,我们也因此导致了一个现网bug。不知道大家能发现不?

揭晓下答案,主要有2个问题:

  • 1,多人开发过程,npm包可能存在不同版本,比如登录能力的npm包,有可能会忘记更新最新包。
  • 2,构建npm按钮在开发者工具上面入口比较隐蔽,容易导致更新了npm包但是忘记点击构建npm,覆盖了线上的特性 上面操作对于熟悉小程序开发的人来说不容易出错,但对于新人,由于不熟悉,容易疏忽。即使犯错但概率很小,但是也必须解决。 那么我们能否通过自动化工具来帮我们校验检测这些隐患呢?

我们希望在上传发布前,可以进行以下流程的自动检测: 1,代码合并主干检测 2,node_modules版本检测,必须是大于或者等于当前package.json的版本 3,自动执行构建npm操作 4,自动执行上传操作,包括填写版号以及备注信息

其中1跟2可以通过githook以及npm命令来判断,3跟4涉及到小程序相关到能力调用,是否有暴露相关到接口可以调用呢?

这里小程序开发者工具提供了命令行以及http调用方式(https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html),可以让你操作项目打开/关闭,代码上传,预览,构建npm, 自动化测试等功能。因此,我们利用这个能力,采用cli调用等方式,实现了构建npm以及自动发布等能力。

具体流程如下: 1,进行是否更新最新主干代码检测; 2,判断是否安装了小程序开发者工具且正常设置到环境变量; 3,进行本地node_modules版本检测; 4,调用构建npm命令; 5,自动获取package.json的版本号作为上传版本,获取git 提交log作为备注;6,调用上传命令进行上传

3,小程序第三方平台 有了以上工具后,我们就可以愉快地进行开发迭代发布了。但随着我们课堂平台小程序的推广,课堂平台的各家机构都想拥有其自己的机构小程序,并且其页面是课堂平台小程序的一个子集。

通过分析后,我们决定通过构建的方式,从平台小程序中拆离出机构小程序代码。通过2份模版配置信息, 通过构建,可以动态生成平台小程序以及机构小程序的app.json。这样进行上传的时候,就只会上传对应的页面。

代码复用的问题解决了,但随着而来还有另外一个问题。需要生成的机构有80多家,有些机构不一定有开发人员,如果帮助机构快速上传发布他们自己的机构小程序呢?

这里引入微信第三方平台的概念(https://open.weixin.qq.com/cgi-bin/showdocument?action=dirlist&t=resource/reslist&verify=1&id=open1489144594DhNoV&token=&lang=zhCN ),我们可以往微信开发平台申请成为第三方平台。机构申请完独立的小程序账号后,将其授权给我们腾讯课堂第三方平台。这样我们就可以获取到该机构到代码管理,版本发布到权限。通过上传我们之前构建好到机构小程序模版,再调用发布接口,就可以快速实现帮助机构发布其独立个体到机构小程序了。

4,性能优化实践

我们的小程序上线后,通过在小程序管理后台看到的启动总耗时,发现几个问题:1,小程序管理后台只展示了启动总耗时,下载耗时,渲染耗时这3个数据纬度,但是启动总耗时!= 下载耗时 + 渲染耗时; 2,启动耗时居然达到了3.8s,这是一个合格都数据吗?除了下载耗时跟渲染耗时,其他耗时消耗在哪个环节呢?

要想知道耗时消耗在哪里,首先要先了解小程序启动过程中究竟发生了什么。

1, 小程序初始化 在这个步骤,微信会初始化小程序环境,比如逻辑层的js引擎,视图层的WebView,并且注入公共基础库。

2,下载小程序代码包 这里会进行业务小程序代码包的下载。

3,加载业务代码包 对下载完成对代码包进行注入执行 - 小程序的代码会被加载到适当的线程中执行。此时,所有app.js、页面所在的JS文件和所有其他被require的JS文件会被自动执行一次,小程序基础库会完成所有页面的注册。

4,初始化小程序首页 拉取数据,从逻辑层传递到视图层,生成VD树,进行渲染。

了解完小程序的启动过程后,我们经过分析定位,个阶段耗时如上图所示。

其中灰色部分是小程序底层的执行耗时,这块开发者是无法操控的。那在其他耗时中,下载代码包这块占比比较高。我们能怎么去减少这块耗时呢?

原先对课堂小程序的所有页面都是在一个包里面,那么这里我们采用分包方案。将主tab的3个页面以及util, 常用组件这种公共模块放在主包。其他每个页面单独分成300-500k左右大小对子包,子包可以引用主包对公共模块。

经过分包处理后,下载代码包对耗时减少了500ms左右,整体启动耗时降到了3.2s。整体来说,已经比小程序大盘平均启动耗时4.5s少了1.3s。

不过随着而来的,也有其他问题的引入,比如从首页打开课程详情页这一场景。

这个时候点击详情页时,需要先下载完详情页分包,才能打开课程详情页,显然这样的体验是极差的。

我们可以通过分包预加载的方案,来解决这个问题。打开首页,加载完主包后,可以静默加载其他分包,通过配置preloadRule即可实现分包预加载。

下面是一组本地测试数据,可以看到使用分包以及分包预加载的方案,可以减少启动耗时以及提高用户体验。

除了普通分包方案,小程序还有独立分包的方案。不依赖主包加载,即可打开分包页面。常用于一些比较独立的页面,比如活动页等。

但使用独立分包也有一些限制:

  • 独立分包无法引用主包或其他分包的资源
  • 全局App对象只能在主包定义,独立分包不能使用App对象
  • 生命周期只能通过:wx.onAppShow, wx.onAppHide来监听

解决了代码包下载的耗时以及采用分包,以及分包与加载提高页面打开性能以及效率。我们接下来看渲染耗时这块。

这是一个典型但小程序双线程通信的模型。每次调用setData方法,都会将数据从逻辑层传递到native层,再到渲染层,形成VD树进行渲染。

以上是setData传输数据量以及传输时间的关系图,可以看到当数据量大于64kb时,传输时间呈指数级增长。 因此,在使用setData时,应该尽量遵循以下建议:

  • 不要频繁调用setData, 尽量合并到一次setData调用
  • 传输数据量跟通信性能有关,尽量少于64k,避免一些不需要在页面展示的复杂数据结构或者长字符串
  • 与界面无关的数据最好不要设置在data中
  • 去掉不必要的事件绑定,减少通信的数据量以及次数
  • 不要在节点data前缀放置过大数据(需要传输target的currentTarget和dataset)

5,公共基础组件库

为了提高开发效率,代码复用率,我们对常见的一些能力以及功能型组件进行了封装(后续计划开源)。

这里拿基础能力的request组件来看,我们基于wx.request来封装,利用storage来存储登陆后的cookie信息,并在后续发起请求的时候,将登陆票据设置到请求头中。 采用可插拔插件式封装方法,来做各种插件到扩展。例如有loading插件,一个可以在发起请求的时候,自动显示loading,请求完成后,自动隐藏的插件。

以上就是小程序开发实践相关的分享。

四、QQ小程序

QQ小程序是一个基于手Q庞大流量,面向年轻化群体,跟随小程序行业标准的小程序平台。启动于18年12月份,并于6月底全量发布,目前覆盖微信小程序API达到了95%以上。

从用户侧来看,基本跟微信小程序类似。在聊天下拉即可发现小程序入口,里面有小程序商城,可发现各类小程序以及小游戏。它的开发者工具的UI也类似微信开发者工具

它跟微信小程序之间有以下的一些区别:

API以及功能方面

  • 调用前缀:例如:qq.getSystemInfoSync (也兼容wx语法) ,覆盖率95%
  • webview: QQ小程序暂不支持webview
  • 唤起方式:支持http链接唤起小程序
  • 组件:不支持live-player, live-pusher组件
  • 分享:QQ小程序支持分享到QQ空间

开发者工具方面

  • 底层框架:都是基于nw.js
  • 编译能力:
  • 不支持增强型编译
  • 不支持多核心编译
  • 其他
  • 不支持体验评分
  • 不支持自动化测试

总的来说,QQ小程序的API基本对齐微信小程序,它的迭代速度较快,能力逐渐补齐中。并且拥有QQ生态流量红利,最重要的是从微信小程序迁移到QQ小程序工作量较小,代码95%以上基本可以复用。

总结

小程序生态发展之迅速,支付宝,百度等各大厂商都在各自研发自己的小程序。从开发者的角度来说,希望能够统一一套API规范,形成行业标准。前不久W3C中文兴趣组也在对小程序的生态进行了规范的相关讨论,相信后续必然会朝着标准化的方向发展。以上便是此次在线教育小程序开发实践之路的分享,可以通过下方的二维码关注IMWeb团队的公众号以及个人的公众号。

关注我们

IMWeb 团队隶属腾讯公司,是国内最专业的前端团队之一。

我们专注前端领域多年,负责过 QQ 资料、QQ 注册、QQ 群等亿级业务。目前聚焦于在线教育领域,精心打磨 腾讯课堂、企鹅辅导 及 ABCMouse 三大产品。

社区官网

http://imweb.io/

加入我们

https://hr.tencent.com/position_detail.php?id=45616

扫码关注 IMWeb前端社区 公众号,获取最新前端好文

微博、掘金、Github、知乎可搜索 IMWebIMWeb团队 关注我们。

👇点击阅读原文获取更多参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯IMWeb前端团队 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯在线教育小程序开发实践之路
前言: 小程序是一种新的开放能力, 开发者可以快速地开发一个小程序,便可以在微信内被便捷得获取和传播,同时具有出色的使用体验。随着近两年来小程序风口的爆发,越来越多的开发者、企业开始接入小程序,那么在在线教育领域,我们可以通过小程序玩出什么花样呢?本文将介绍腾讯在线教育的小程序矩阵,以及如何进行框架选型设计,工程化探索,性能优化等实践。 一、 腾讯在线教育小程序矩阵 首先介绍下腾讯在线教育下的3个主要业务: 面向成人职业化,兴趣化学习的腾讯课堂 面向小学,初高中k12领域的企鹅辅导 面向少儿英语学
腾讯技术工程官方号
2019/07/04
2K0
腾讯在线教育小程序开发实践之路
小程序音视频背后的故事 | 开发
知晓程序注: 本文转载自云加社区。 作者 rexchang(常青),腾讯视频云终端技术总监,2008 年毕业加入腾讯,一直从事客户端研发相关工作,先后参与过 PC QQ、手机QQ、QQ物联等产品项目。 目前在腾讯视频云团队负责音视频终端解决方案的优化和落地工作,帮助客户在可控的研发成本投入之下,获得业内一流的音视频解决方案,目前我们的产品线包括:互动直播、点播、短视频、实时视频通话,图像处理,AI 等等。 为方便大家消化,请参考本篇文章的思维导图: 音视频小程序诞生在2017年4月一辆从深圳开往广州的C71
知晓君
2018/06/28
9640
【腾讯课堂】基于Kbone使用React同构小程序开发实践总结
导语:Kbone 是微信推出的 Web 与小程序同构解决方案,该方案现已支持 Vue、React 等同构 本文目录一览: 1. 背景 2. 框架选择 3. React-Kbone-Miniprogram 过程 4. 接入现有工程     4.1 构建配置         4.1.1 Babel         4.1.2 Tree Shaking         4.1.3 与小程序代码复用     4.2 代码编写          4.2.1 小程序、H5 公共库适配         4.2.2 op
用户1097444
2022/06/29
7720
【腾讯课堂】基于Kbone使用React同构小程序开发实践总结
在线教育技术方案,究竟哪种好?
这一次疫情给整个教育行业带来了巨大的影响,在线教育量流量迎来了爆发式增长,成为了当前的热点话题,与此同时传统的线下教育机构也面临着巨大的生存挑战。
腾讯云开发者
2020/04/07
9K0
GMTC《在线教育小程序云开发工程化实践》演讲全文
GMTC·2019近日在深圳隆重召开。腾讯在线教育IMWeb团队的高级工程师袁龙在大会上发表了《在线教育小程序云开发工程化实践》的演讲,介绍了腾讯在线教育在小程序工程化,小程序CI、CD,以及云开发在多端开发的探索与实践经验。演讲内容整理如下。 一、腾讯在线教育业务背景 首先介绍下腾讯在线教育下的3个主要业务。 - 面向对成人职业化、兴趣化学习的腾讯课堂 - 面向小学、初高中K12领域的企鹅辅导 - 面向少儿英语学习的ABCmouse 这三块业务在各个端都有产品落地,来满足不同端用户的需求,当然也包括小程
用户1097444
2022/06/29
7110
GMTC《在线教育小程序云开发工程化实践》演讲全文
实时音视频 TRTC 常见问题汇总---小程序篇
如有更多需求,或希望深度合作,可以 提交工单 或致电4009100100联系我们。
腾讯视频云-Zachary
2021/09/21
5.9K0
实时音视频 TRTC 常见问题汇总---小程序篇
小程序自动化测试总结
本文由 IMWeb 首发于 IMWeb 社区网站 imweb.io。点击阅读原文查看 IMWeb 社区更多精彩文章。 一、缘起-为什么要进行小程序自动化测试 微信小程序生态日益完善,很多小程序项目页面越来越多,结构越来越复杂,业务逻辑也更加多样。以腾讯课堂小程序为例,目前腾讯课堂小程序部分页面结构和不同业务场景下的表现如下图所示: 可以看到在核心功能上主要页面对于不同业务场景有众多不同的表现,因此在开发与发布的过程中需要手动验证大量测试用例以保证小程序按预期表现运行,善于利用工具的程序员当然会想: 这种重
用户1097444
2022/06/29
1.9K0
小程序自动化测试总结
腾讯课堂小程序开发实践与思考
本文由 InfoQ 整理自腾讯 CSIG 在线教育部前端高级开发工程师陈天忱在 GMTC 全球大前端技术大会(深圳站)2021 的分享《腾讯课堂小程序开发实践》。
深度学习与Python
2022/04/19
1.6K0
腾讯课堂小程序开发实践与思考
提前曝光!微信官方悄悄告诉我们,这 3 个新能力即将开放
随着小程序的持续窜热,商家和企业加速进入小程序生态,越来越多人「严阵以待」着小程序新能力的发布和微信关于小程序未来规划的描述。而在 11 月 21 日的公开课,这些方面均有猛料爆出。
知晓君
2018/07/27
6330
刘连响:小程序实时音视频在互动场景下的应用
今天为大家带来的分享是:小程序实时音视频在互动教育场景下的应用。我个人一直在做基础方面的研究,接触音视频也比较早,2013年的时候就开始做包括直播在内的相关产品,有多个音视频研究的相关经验。目前我们关注教育、医疗方向的音视频,以及有关这方面的应用。
腾讯云开发者社区技术沙龙
2018/06/29
2K0
刘连响:小程序实时音视频在互动场景下的应用
周锦民:腾讯在线教育视频互动直播间技术实践
今天分享的主题分三个部分。第一部分,跟大家介绍一下腾讯课堂和企鹅辅导这两款产品。第二,讲一下课堂直播系统,和腾讯云这边的具体实践案例。第三,谈一下在线教育的房间系统设计方案和这几年过程中的优化效果。
腾讯云开发者社区技术沙龙
2018/07/02
4K0
周锦民:腾讯在线教育视频互动直播间技术实践
从 1v1 到百万师生互动,教育机构如何提升在线教育技术能力
疫情期间,巨额投资、百亿营销、监管趋严……2020年以来,曲折发展的教育行业已然进入全新赛段,那就是在线教育。
云巴巴严选云
2021/07/30
8240
从 1v1 到百万师生互动,教育机构如何提升在线教育技术能力
微信公开课:解密小程序视频客服解决方案
就在前天(1月9日),为期两天的微信公开课PRO又一次如期而至。除了微信之父张小龙的4小时演说外,这次微信公开课PRO还带来了各行业中关于微信和微信小程序的一些应用和分享。 腾讯云音视频产品负责人黄斌 在云与智慧产业分论坛上,腾讯云音视频产品负责人黄斌为大家解密微信小程序视频客服解决方案。如何让面对面连接成为可能,腾讯云怎么借助视频客服解决方案完成小程序的使命,让创造者体现更多的价值和回报,或许在分享中会有结果。 让面对面连接成为可能 视频介绍了小程序实时音视频方案解决的问题,描述内容和技术已
腾讯云音视频
2019/01/30
1.9K0
微信公开课:解密小程序视频客服解决方案
抗击疫情不停学——腾讯“空中课堂”助力在线教育创新教学
2020年这场震惊全球的疫情,给各行各业都带来了不小的打击,同时也给教育行业带来了深刻的改变。随着“停课不停学”口号的实施,“互联网+教育”一夜之间走入千万家庭,成为疫情期间大家讨论最热门的话题之一。步入2021年,疫情的火焰又汹汹而来,为了师生的安全,各大中高等学校都纷纷提前散学,空中课堂在这种情况下又纷纷归来。 在疫情存在的各种不确定因素下,学生的教育也是值得思考的一个问题。如何构建一个高质量的在线课堂,成为了众多学校以及教育培训机构近期乃至未来一段时间内的重点课题。 腾讯教育针对这个严峻的问题,正式
腾讯即时通信IM
2021/02/04
1.5K0
微信小程序+腾讯云直播的实时音视频实战笔记
本篇概览 前段时间因为工作关系接触了微信小程序的实时音视频播放,这里将过程详细记录下来,作为今后的参考; 整体方案上,我这边用OBS推流到腾讯云,再用小程序的live-player组件从腾讯云拉流播放,架构图如下: 本篇内容就是上图中的所有操作,从配置OBS推流开始,到腾讯云直播服务配置,再到小程序的运行全部打通; 重要前提(主体是企业的小程序、一个可用域名) 本次实战需要五个重要前提,请确保已经满足,否则难以成功: 小程序的主体必须是企业,因为只有企业类型才能打开以下开关,个人类型是无法打开的:
程序员欣宸
2021/12/07
3.9K0
微信小程序+腾讯云直播的实时音视频实战笔记
小程序音视频能力技术负责人解读“小程序直播”
LiveVideoStack:关于小程序中的RTC能力,是通过WebRTC实现的(或其他RTC技术),还是基于RTMP呢?
LiveVideoStack
2021/09/02
1.4K0
小程序音视频能力技术负责人解读“小程序直播”
实践总结:基于Kbone使用React同构开发小程序
据官方介绍,Kbone 是一个致力于微信小程序和Web端同构的解决方案。具体来说,因为微信小程序的底层模型和 Web 端不同,所以如果我们想直接把 Web 端的代码挪到小程序环境内执行是不可能的。
极乐君
2020/09/24
1.3K0
实践总结:基于Kbone使用React同构开发小程序
Web直播,你需要先知道这些
本文由 IMWeb 团队成员 万宽红Terrancewan 首发于社区网站 imweb.io。点击阅读原文查看 IMWeb 社区更多精彩文章。 前段时间接触了一些音视频、web直播相关的东西,加上Flash的即将终结、WebRTCd的兴起、小程序的流行,这里总结了一点个人学习收获和大家分享。 Web直播,你需要先知道这些 直播知识小科普 一个典型的直播流程:录制->编码->网络传输(推流->服务器处理->CDN分发)->解码->播放 IPB:一种常用的视频压缩方案,用I帧表示关键帧,B帧表示前向差别帧,P
用户1097444
2022/06/29
2K0
Web直播,你需要先知道这些
腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征、差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebRTC互通的实现思路以及技术方案。希望能带给你启发。
JackJiang
2018/09/29
3.3K0
在线教育大前端架构演进之路
前段时间,本人有幸于在深圳GMTC大前端架构演进专场进行分享。其后应叶冉编辑邀请,总结了此次分享的演讲稿《腾讯在线教育大前端架构演进之路》。首先做一下自我介绍。我是来自腾讯的工程师 haige,于16年校招进入腾讯QQ浏览器,目前在腾讯在线教育部 IMWeb 前端团队工作。本文对前端团队的架构演进,以及探索团队研发效率的工程化建设,有一定的借鉴意义。 一、在线教育部业务简介 技术团队的发展依托于业务的成长,我目前所在的是教育行业。团队目前有三款教育产品,分别是ABCMouse、企鹅辅导、腾讯课堂。 ABC
用户1097444
2022/06/29
8670
在线教育大前端架构演进之路
推荐阅读
相关推荐
腾讯在线教育小程序开发实践之路
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档