音影片即時通訊—影片呼叫業務流程使用
影片呼叫業務邏輯主要實現兩個終端(PC、手機、Pad等)之間的通話請求流程控制,包括請求(Request)、回覆(Reply)、開始(Start)以及結束(Finish)等過程,可以形象理解為打電話的流程:撥號、等待、通話、結束通話。
以下以AnyChat影片呼叫業務邏輯為例說明:
1、業務邏輯流程圖
請參考 %3D1
2、API介面及常量定義
客戶端相關API介面及事件回撥:
// 視訊通話訊息通知回撥函式定義
typedef void (CALLBACK * BRAC_VideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOID lpUserValue);
// 設定視訊通話訊息通知回撥函式
BRAC_API DWORD BRAC_SetVideoCallEventCallBack(BRAC_VideoCallEvent_CallBack lpFunction, LPVOID lpUserValue);
// 影片呼叫事件控制(請求、回覆、結束通話等)
BRAC_API DWORD BRAC_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);
伺服器相關API介面及事件回撥:
// 視訊通話訊息通知回撥函式定義
typedef DWORD (CALLBACK * BRAS_OnVideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwSrcUserId, DWORD dwTarUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOID lpUserValue);
// 設定視訊通話訊息通知回撥函式
BRAS_API DWORD BRAS_SetOnVideoCallEventCallBack(BRAS_OnVideoCallEvent_CallBack lpFunction, LPVOID lpUserValue=NULL);
// 影片呼叫事件控制(請求、回覆、結束通話等)
BRAS_API DWORD BRAS_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);
常量定義
/ 影片呼叫事件型別定義(API:BRAS_VideoCallControl 傳入引數、OnVideoCallEvent回撥引數)
#define BRAS_VIDEOCALL_EVENT_REQUEST 1 ///< 呼叫請求
#define BRAS_VIDEOCALL_EVENT_REPLY 2 ///< 呼叫請求回覆
#define BRAS_VIDEOCALL_EVENT_START 3 ///< 影片呼叫會話開始事件
#define BRAS_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、影片呼叫業務流程可以脫離業務伺服器,由核心伺服器獨立支撐,可以不需要在伺服器端進行二次開發。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30004768/viewspace-1324188/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 招聘新模式—音影片即時通訊模式
- 即時通訊中音影片同步的實現
- P2P技術給網路音影片即時通訊帶來的發展
- 音視訊即時通訊解決方案
- Flutter(十) 音訊+影片播放Flutter音訊
- 音影片廠商核心功能對比:騰訊雲音影片/聲網/即構
- 即時通訊
- flutter 呼叫環信sdk 實現即時通訊Flutter
- markdown插入圖片、音訊影片音訊
- 即時通訊的語音回聲消除技術
- 影片通訊近實時生成字幕專案實踐
- iOS:即時通訊之iOS
- 開源 即時通訊 ?
- 設定在即時通訊中音影片的引數質量
- 合併影片的同時能批次新增文案和音訊嗎?音訊
- java WebSocket 即時通訊配置使用說明JavaWeb
- UDP實現音訊影片流傳輸UDP音訊
- IM即時通訊聊天社交APP VX 聊天語音視訊系統APP
- 想要影片裡的音樂,如何提取裡面的音訊?音訊
- CNNIC:即時通訊使用者規模穩定增長,主流即時通訊功能廣泛外延CNN
- 騰訊互動白板+即時通訊+實時音視訊,Android學生端接入Android
- 音影片相關
- koa-socket即時通訊
- 小程式即時通訊demo
- iOS流式即時通訊教程iOS
- xmpp即時通訊詳解
- ffmpeg 匯出影片檔案中的音訊音訊
- pygame播放影片並實現音影片同步GAM
- 即時通訊和即時通訊的區別是什麼,都有什麼特點?
- 音訊和影片無法在PowerPoint中播放音訊
- 音訊和影片同步工具:Red Giant PluralEyes for Mac音訊Mac
- Red Giant PluralEyes for Mac(音訊和影片同步工具)Mac音訊
- 教你批次合併影片、文案和音訊的操作音訊
- FFmpeg命令影片音訊轉碼引數詳解音訊
- Java 實現壓縮圖片,影片,音訊案例Java音訊
- eddChat即時通訊(聊天系統)
- WEB 即時通訊最佳實踐Web
- [場景設計]即時通訊