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


    在“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)的数据。

  • 相关阅读:
    codevs 1993草地排水
    欧拉筛板子
    约数和问题 (codevs2606 && 洛谷2424)
    排列组合
    Picture poj1177
    楼房 洛谷1382 && codevs2995
    洛谷P1027 Car的旅行路线
    codevs1020 孪生蜘蛛
    HDU1269 迷宫城堡
    洛谷P1078 文化之旅
  • 原文地址:https://www.cnblogs.com/megan812/p/3872450.html
Copyright © 2020-2023  润新知