1.2. 流程?

Table of Contents

1.2.1. AVD SDK時序圖?

AVD SDK有許多接口是異步調用的,且調用時會引發本地模塊或者遠端加入房間的模塊一些通知和事件。應用層調用時先初始化AVD引擎單例, 然后可以調用任何AVDEngine中的接口;創建房間(Room)對象后,可以通過各個房間功能模塊的靜態接口(如IMAudio* getAudio(IRoom* room) 獲取房間語音接口)獲取房間的功能操作接口,然后由這些功能接口實現各種房間內溝通操作。房間銷毀后,各房間功能接口均無效。AVD引擎反初始化后, 由此引擎創建的各個房間對象無效。

下面對幾個主要流程做時序圖說明,整體圖如下:

../_images/avdSdkApiSequence.png

以上時序圖標識了引擎初始化和銷毀、加入離開房間、打開音頻、發布視頻、訂閱視頻的應用層和SDK層的時序關系,下面分別做詳細說明。

  • A.引擎初始化和銷毀 應用層使用AVD SDK時,首先要做的事情就是初始化引擎,引擎初始化成功后才能創建房間,執行房間中的具體功能。引擎初始化后也可以調用任何其他引擎接口。 如上圖A1, A2, A3流程所示,引擎初始化是一個異步操作,初始化的主要參數是叁體分配的appkey,secretkey和叁體服務器地址。
  • B.加入離開房間 對于一個房間來說,首先通過靜態函數IRoom::obtain獲取房間對象,調用房間對象的join接口加入房間。房間作為一個用戶相互溝通的環境,可以實現各種溝通功能,通過各功能的getXX(如getAudio)接口獲取具體功能操作的接口。 應用程序環境中房間對象的互動周期在Join成功后
  • C.打開音頻 用戶獲取音頻模塊功能接口后,可以通過接口openMicrophone來打開本地音頻,音頻打開成功后,所有房間中的用戶會接收到本用戶音頻打開的通知。
  • D.E.發布和訂閱視頻 用戶獲取視頻模塊功能接口后,可以通過接口publishLocalCamera來打開本地視頻,視頻打開成功后,所有房間中的用戶會接收到本用戶特定攝像頭打開的通知。應用根據業務規則,通過接口Subscribe訂閱特定攝像頭的視頻數據,訂閱成功后可以用attachRender將視頻顯示在特定窗口內。 如果本地有多個攝像頭,可以根據指定攝像頭Id發布特定攝像頭,或者指定攝像頭設備信息對象中的參數來控制發布視頻的分辨率、視頻編碼類型等。