首页 > 代码库 > 视频通过的流程API调用操作控制

视频通过的流程API调用操作控制

视频呼叫事务逻辑首要完成两个终端(PC、手机、Pad等)之间的通话恳求流程操控,包含恳求(Request)、回复(Reply)、开端(Start)以及完毕(Finish)等进程,能够形象理解为打电话的流程:拨号、等候、通话、挂断。

以下以AnyChat视频呼叫事务逻辑为例说明:

 

1、事务逻辑流程图

    请参阅http://bbs.anychat.cn/forum.php?mod=viewthread&tid=150&extra=page=1

 

2、API接口及常量界说

客户端有关API接口及事情回调:

// 视频通话音讯告诉回调函数界说

typedef void (CALLBACK *BRAC_VideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwUserId, DWORDdwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOIDlpUserValue);

 

// 设置视频通话音讯告诉回调函数

BRAC_API DWORDBRAC_SetVideoCallEventCallBack(BRAC_VideoCallEvent_CallBack lpFunction, LPVOIDlpUserValue);

 

// 视频呼叫事情操控(恳求、回复、挂断等)

BRAC_API DWORDBRAC_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode,DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);

 

服务器有关API接口及事情回调:

// 视频通话音讯告诉回调函数界说

typedef DWORD (CALLBACK *BRAS_OnVideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwSrcUserId, DWORDdwTarUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTRlpUserStr, LPVOID lpUserValue);

 

// 设置视频通话音讯告诉回调函数

BRAS_API DWORDBRAS_SetOnVideoCallEventCallBack(BRAS_OnVideoCallEvent_CallBack lpFunction,LPVOID lpUserValue=http://www.mamicode.com/NULL);

 

// 视频呼叫事情操控(恳求、回复、挂断等)

BRAS_API DWORDBRAS_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode,DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);

 

常量界说

/ 视频呼叫事情类型界说(API:BRAS_VideoCallControl 传入参数、OnVideoCallEvent回调参数)

#defineBRAS_VIDEOCALL_EVENT_REQUEST 1 ///< 呼叫恳求

#defineBRAS_VIDEOCALL_EVENT_REPLY 2 ///< 呼叫恳求回复

#defineBRAS_VIDEOCALL_EVENT_START 3 ///< 视频呼叫会话开端事情

#defineBRAS_VIDEOCALL_EVENT_FINISH 4 ///< 挂断(完毕)呼叫会话

 

3、有关说明

3.1、客户端API(BRAC_VideoCallControl)和回调函数(BRAC_VideoCallEvent_CallBack)中的dwUserId均为对方(被呼叫方)的用户ID;

3.2、被呼叫方回绝通话时,发送回复(Reply)指令,dwErrorCode=100104;

3.3、被呼叫方同意通话时,发送回复(Reply)指令,dwErrorCode=0,然后服务器会向两边发送通话开端(Start)指令,dwParam=RoomId,房间号由中心服务器自动分配;

3.4、完毕通话时,任何一方(包含事务服务器)均能够发送完毕(Finish)指令,然后服务器会向两边发送通话完毕(Finish)指令;

3.5、事务服务器可干涉呼叫流程:在BRAS_OnVideoCallEvent_CallBack收到呼叫恳求指令后,回来0表示答应呼叫,否则为犯错代码,不答应呼叫;在会话进程中能够发送完毕(Finish)指令,强行挂断指定用户的通话;

3.6、API接口中的dwParam(整型)、lpUserStr(字符串)均为用户自界说用途;

3.7、一个用户一起只能建议一路呼叫恳求,也一起只能被一个用户呼叫;

3.8、视频呼叫事务流程能够脱离事务服务器,由中心服务器独立支持,能够不需要在服务器端进行二次开发。

视频通过的流程API调用操作控制