流媒體數據代理----Anychat

“用戶流媒體數據代理功能”,使用該功能可以實現指定用戶將其它用戶的流媒體數據(音頻、視頻)做爲自己的數據,轉發給請求指定用戶相關數據的用戶。

 

應用場景:將指定用戶(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)的數據。

音視頻包:http://down.51cto.com/data/507550

對於本博有任何疑問的朋友都可加QQ:992139738

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章