如何使用流媒体数据代理功能?

在“AnyChat Platform Core SDK V2.8”版本的SDK中,新增加了“用户流媒体数据代理功能”,使用该功能可以实现指定用户将其它用户的流媒体数据(音频、视频)做为自己的数据,转发给请求指定用户相关数据的用户。

应用场景:将指定用户(P)设置为其它用户(A)数据(音频、视频数据)的代理,当第三方用户(C)向指定用户(P)请求数据时,第三方用户(C)将会收到其它用户(A)的数据(音频、视频)。

使用该功能,可以实现某些特殊的应用,如在会议直播的应用中,可以设置多个代理用户(P),来代理主会场(A)的流媒体数据,当其它用户(C)向代理用户请求流媒体数据时,将会获取到主会场(A)的流媒体数据,这样便可以将数据进行分流,避免主会场(A)用户由于有太多的用户请求而导致网络拥塞。

当会议规模比较大时,比较理想的部署方案是:部署多个代理用户,主会场的数据只发送给代理用户(只有代理用户请求),普通用户只请求代理用户的数据,这样便实现了多级数据传递功能,节约了主会场所在网络的带宽压力。

典型的流媒体数据代理功能示例代码如下:

01.// 代理用户编号为11的用户的视频、语音数据

02.DWORD dwUserId = 11;

03.BRAC_SetSDKOption(BRAC_SO_PROXY_VIDEOCTRL,(const char*)&dwUserId,sizeof(DWORD));

04.BRAC_SetSDKOption(BRAC_SO_PROXY_AUDIOCTRL,(const char*)&dwUserId,sizeof(DWORD));

05.// 启动代理模式

06.BOOL bStartProxy = TRUE;

07.BRAC_SetSDKOption(BRAC_SO_PROXY_FUNCTIONCTRL,(const char*)&bStartProxy,sizeof(DWORD));

08.// 请求用户编号为11的用户的语音、视频数据

09.BRAC_UserCameraControl(dwUserId,TRUE);

10.BRAC_UserSpeakControl(dwUserId,TRUE);

注:代理用户(P)必须主动请求被代理用户(A)的相关数据,其它用户(C)才能从代理用户(P)处获得被代理用户(A)的相关数据;其它用户(C)是直接请求代理用户(P)的数据,而不需要请求被代理用户(A)的数据。

如何使用流媒体数据代理功能?

时间: 2025-01-14 23:55:39

如何使用流媒体数据代理功能?的相关文章

流媒体开发技术 数据代理

在现如今的流媒体开发技术中,AnyChat在这一领域有着不错的信誉和知名度,自从2012年度开始,他们在自己的SDK版本中,新增加了"用户流媒体数据代理功能",使用该功能可以实现指定用户将其它用户的流媒体数据(音频.视频)做为自己的数据,转发给请求指定用户相关数据的用户. 应用场景:将指定用户(P)设置为其它用户(A)数据(音频.视频数据)的代理,当第三方用户(C)向指定用户(P)请求数据时,第三方用户(C)将会收到其它用户(A)的数据(音频.视频). 使用该功能,可以实现某些特殊的应

Nginx反向代理功能

Nginx反向代理: 以入口点的方式接受来自客户端的请求,但是本身不存在任何数据,而是交由后端服务器进行处理后,再返回里客户端 请求            客户端发起请求------>代理服务器------------------------------>后端服务器 返回            后端服务器------------->代理服务器------------------------------>客户端 在这个过程客户端是不主动向后端服务器请求的,后端服务器也不直接向客户端返

SSH远程管理,构建密钥对验证的SSH体系,设置SSH代理功能。

SSH服务及配置文件SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录,对通信双方的数据实行了加密处理,提供了更好的安全性.OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX,linux系统,关于OpenSSH的更多内容可以访问其官方网站http://www.openssh.com.本篇讲解以redhat6.5为实验对象,一般情况系统默认已经安装OpenSSH服务,使用"service sshd start"命令即可按默认设置启动sshd

041 用户注册功能01--搭建微服务和数据验证功能

1.创建用户中心微服务 用户搜索到自己心仪的商品,接下来就要去购买,但是购买必须先登录.所以接下来我们编写用户中心,实现用户的登录和注册功能. 用户中心的提供的服务: 用户的注册 用户登录 这里我们暂时先实现基本的:注册和登录功能. 因为用户中心的服务其它微服务也会调用,因此这里我们做聚合. leyou-user:父工程,包含2个子工程: leyou-user-interface:实体及接口 leyou-user-service:业务和服务 (1)创建父module (2)创建leyou-use

对数据劫持 OR 数据代理 的研究------------引用

数据劫持,也叫数据代理. 所谓数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果.比较典型的是 Object.defineProperty() 和 ES2015 中新增的 Proxy 对象.另外还有已经被废弃的 Object.observe(),废弃的原因正是 Proxy 的出现,因此这里我们就不继续讨论这个已经被浏览器删除的方法了. 数据劫持最著名的应用当属双向绑定,这也是一个已经被讨论烂了的面试必考题.例如 Vue 2.x 使用的是 Ob

ExtJs4学习(七)数据代理Proxy

Ext数据代理我们介绍常用的五种 Ext.data.proxy.Ajax AjaxProxy(Ajax数据代理类)是你的应用程序中使用最广泛的获取数据的方式. 它使用AJAX请求来从服务器获取数据, 然后通常将它们放入 Store中. 让我们来看一个典型的配置. 这里我们为一个Store设置一个AjaxProxy代理. 首先我们准备好一个 Model: Ext.define('User', { extend: 'Ext.data.Model', fields: ['id', 'name', 'e

ExtJs4.2应用:使用ExtJs扩展组件searchfield实现数据搜索功能

ExtJs4.2应用:使用ExtJs扩展组件searchfield 实现数据搜索功能 1.引入searchfield组件 在Ext目录下放入ux目录将searchfield组件放入ux目录下的form文件下,如图所示: 2.在对应Js文件中引入searchfield组件 dockedItems: [{ dock: 'top', /**在顶部显示*/ xtype: 'toolbar', /**以工具栏形式展示*/ items: { width: "25%", fieldLabel: 'L

Nginx代理功能与负载均衡详解

Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的配置说明 1.上一篇中我们在http模块中有下面的配置,当代理遇到状态码为404时,我们把404页面导向百度. error_page 404 https://www.baidu.com; #错误页 然而这个配置,细心的朋友可以发现他并没有起作用. 如果我们想让他起作用,我们必须配合着下面的配置一起使用 p

Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能

在Senparc.Weixin.dll v4.5.7版本开始,我们提供了Web代理功能,以方便在受限制的局域网内的应用可以顺利调用接口. 有关的修改都在Senparc.Weixin/Utilities/HttpUtility/RequestUtility.cs: 1 #region 代理 2 3 private static WebProxy _webproxy = null; 4 5 /// <summary> 6 /// 设置Web代理 7 /// </summary> 8 /