网站推广.NET

网站推广.NET

纯干货:微信小程序实时开发

来源:互联网

如何开发微信小程序直播,本教程将带您了解小程序直播的秘密。

您是否曾经注意到小程序直播已经越来越多地用于会议,客户服务以及我们周围的约会...看到这些,许多开发人员都感到焦虑不安:如何开发此类小程序直播, 小程序在线语音客户服务,小程序视频会议和其他服务?

实际上,这6个小程序实况转播对于它的支持是必不可少的-

2017年下半年,微信6.5.21版本支持在线音频和视频功能。开发人员可以通过两个音频和视频组件实现实时在线实时广播,视频通话,语音通话等功能。

在本小程序课程中,微信开发人员将详细介绍在线实时广播和视频通话中的音频和视频组件的两种应用场景。

在线广播时该怎么办?

1、在线直播的应用场景是什么?

在线实时广播可用于诸如企业内部的游戏实时广播,远程教学和内部培训共享之类的场景。现场直播的应用场景可以覆盖各行各业。

例如,微信电子竞技是实况游戏产品,小程序是产品展示方法。

例如,在医疗行业,专业医生经常需要飞往全国各地进行学术交流和培训。出行本身会耽误很多医生的时间。在线远程教学可以大大减少此处的时间消耗。

小程序中的两个组件都具有一种称为实时的模式(相应的模式属性是SD,HD,FHD),这是专门为在线实时广播而设计的。通过小程序模式的音频和视频接口直播,可以实现上述应用场景。

2、实时流式传输的内部原理是什么?

由主机使用,它是微信小程序内部的推送引擎,负责收集和编码手机摄像头和麦克风的数据,并通过url指定的rtmp推送地址将其上传到云端参数。

云的作用类似于信号放大器。它负责将来放大来自独立广播公司的音频和视频流数据的通道,并将数据实时无差别地传播到全国各地,从而解决主机之间的距离问题。并且受众太远了例如跨区域和跨运营商的问题。

观众用来玩。它是小程序内部的在线播放器,负责实时从云中提取音频和视频数据,进行解码和渲染。由于云的放大作用,每个观看者都可以在距离他更近的云服务器上提取实时,流畅的音频和视频流。

3、如何使用小程序在线生活?

第一步:打开一个云直播服务(例如腾讯云),或者自己构建一个rtmp服务器(例如nginx-rtmp服务)。

第2步:生成推送URL。推送URL通常以“ rtmp://”开头。例如,rtmp:/// live / 8888_test是典型的rtmp推送URL。

步骤3:在小程序中添加一个标签,并将url参数指定为您在步骤2中生成的推送网址。

第4步:生成推送流网址和播放地址。推送流通常是一个以rtmp://开头的url,播放地址有两个选项,分别是以“ rtmp://”开头的rtmp播放协议,“对于以-开头的http-flv播放协议建议使用“ .flv”并以“ .flv”结尾,因为各种云供应商都优化了这种播放地址。

第5步:在小程序中添加一个标签,并将src参数指定为在第4步中生成的播放网址。同时,请指定mode参数,因为live,orientation和object-fit属性可以是用于调整屏幕布局,min-cache和max-cache可用于控制查看器和锚点之间的延迟,建议设置为min -cache = 2,max-cache = 5。

关于直播,您会遇到这样的问题

1、为什么延迟太高?

在线实时广播的延迟与播放协议和播放器参数有很大关系。最小缓存和最大缓存用于控制播放器的最小延迟和最大延迟。其中,此处提到的“最小”和“最大”是根据观众方的网络情况确定的。如果网络更好,则播放器的延迟将趋向于最小缓存,如果网络处于不良状况,则播放器的延迟将趋向于最大缓存。

此外,rtmp协议和http-flv协议的播放地址延迟通常较低,而hls(m3u8)协议)的延迟较高。

2、锚点网络不好,我该怎么办?

在直播中,如果观众的网络不好,那么观看体验只会影响当前的观众;如果主持人的网络不好,则所有观看者的观看体验都会非常差。因此,宿主上游网络的质量非常重要。如果主机的上游网络的质量不理想,例如好日子和坏日子,或者上游小水管,不足以满足基本的直播需求,则有两种方法可以解决问题:

一种方法是设置最小比特率参数(例如400kbps),以便当锚点网络不强时,它将向锚点的编码器发送降低图像质量的命令,并通过降低该值来吐出编码器减轻锚点网络的负担。但是这种方法的副作用也很明显,那就是锚的质量会变差。

另一种方法是使用NET_BUSY通知在UI上发出警报。当主机的上行网络速度不强时,将通过onPushEvent通知引发PUSH_WARNING_NET_BUSY(1101)事件。这时,您可以提示主机通过路由器附近或切换4G方法以提高电流网络质量。

为什么3、 HLS(m3u8)协议不能播放?

微信小程序在最早的版本中集成了标签,可以播放HLS(m3u8)协议播放地址,但是此播放协议的延迟通常超过20秒,因此如果延迟要求很高,建议使用标签播放http-flv协议的直播地址。

视频通话,您也可以开发

1、 小程序 +视频通话有哪些优势?

我们可以发现,当前的保险业将通过现场损失评估来处理汽车保险索赔。这种方法需要损失评估人员开车到事故发生地点来确定损失,每次旅行的成本很高。

如果您想使用远程电话解决问题,保险公司无法简单地通过语音通信来确定损坏的程度,并且很难通过拍照避免汽车欺诈的可能性,因此**真实实时视频通话**可以解决此问题。

小程序和两个组件都有一个称为RTC的模式,通过此模式,可以在小程序中实现实时视频通话。

2、视频通话的内部原理是什么?

这两个组件的RTC模式主要是为了以极低的延迟实现音频和视频数据的端到端传输。

通过这种方式,视频通话的双方A和B都可以在相反的方向上打开音频和视频链接,从而实现A和B之间的双向低延迟音频和视频数据传输。同时,RTC模式还将启用内置的AEC(回声抑制)功能,以避免由于本地麦克风对播放器声音的次要采集而引起的回声问题。

3、如何使用小程序进行视频通话?

第一步:打开一个云直播服务(例如腾讯云),或者自己构建一个rtmp服务器(例如nginx-rtmp服务)。

步骤2:生成两对rtmp推挽流网址:一对用于A侧推送的push_url_a和用于播放A侧视频的play_url_a;另一对是push_url_b,用于B侧推送和播放B侧视频的Play_url_b;

步骤3:在A端添加标签,将模式指定为RTC,并将url输入设置为push_url_a。

步骤4:在A侧添加标签,将模式指定为RTC,并将src输入设置为play_url_b。

第5步:在B端添加一个标签,将模式指定为RTC,并将url输入设置为push_url_b。

步骤6:在B侧添加标签,将模式指定为RTC,并将src输入设置为play_url_a。

关于视频通话,您会有这个问题

1、如果通话延迟过长怎么办?

小程序的RTC模式解决了终端中两路或多人实时音频和视频呼叫所需的各种技术组件,但是呼叫线路本身也可能会引入高延迟,因此请确保视频通话的A。双方使用的rtmp线路的延迟必须非常短。

如果您构建自己的rtmp服务器(例如nginx-rtmp服务),请检查nginx-rtmp的服务器端参数设置,以确保不会在服务器端引入过多的音频和视频数据缓存。

如果您使用的是腾讯云的超低延迟线,则应注意RTC模式下具有防垃圾邮件签名的传输URL。

比较项目

示例

潜伏期

普通直播URL

rtmp:/// live / 3891_test_clock_for_rtmpacc

> 2s

超低延迟URL

rtmp:/// live / 3891_test_clock_for_rtmpacc?bizid = bizid&txTime = 5FD4431C&txSerect = 20e6d865f462dff61ada209d53c71cf9

2、如果照片被卡住该怎么办?

小程序的RTC模式主要用于视频通话。由于此类场景专注于交流,因此小程序将以有限的方式保证声音的平滑度。相应地,视频数据的传输将被置于第二优先级上。因此,如果网络波动,小程序将丢弃尚未发送的视频数据,并优先发送音频数据。

因此,如果您处于RTC模式,建议不要设置太高的图像质量,即,不要设置太高的最小比特率和最大比特率。一般来说,建议将最小比特率设置为300kbps,将最大比特率设置为800kbps,以满足常规视频通话的需求。