標籤:使用 資料 io for art cti 代碼 div
在“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)的資料。