全部產品
Search
文件中心

ApsaraVideo Live:AliRtcEngine介面

更新時間:Feb 07, 2026

本文介紹即時音視頻Windows SDK介面詳情。

目錄

基礎介面

API

功能描述

Create

建立AliRtcEngine執行個體(單例模式)。

Destroy

銷毀AliRtcEngine執行個體。

QueryInterface

擷取功能介面執行個體。

SetH5CompatibleMode

設定H5相容模式。

GetH5CompatibleMode

檢查當前是否相容H5。

SetEngineEventListener

設定相關監聽事件回調。

GetSDKVersion

查詢當前 SDK 版本號碼。

頻道相關介面

API

功能描述

SetChannelProfile

設定頻道模式。

SetAudioProfile

設定音頻Profile。

IsAudioOnlyMode

查詢當前是否為純音頻模式。

SetAudioOnlyMode

設定為純音頻模式還是音視頻模式。

JoinChannel[1/3]

加入頻道。

JoinChannel[2/3]

加入頻道。

JoinChannel[3/3]

加入頻道。

LeaveChannel

離開頻道。

IsInCall

檢查當前是否在頻道中

SetClientRole

設定使用者角色。

GetClientRole

擷取使用者角色類型。

RefreshAuthInfo[1/2]

重新整理鑒權資訊。

RefreshAuthInfo[2/2]

重新整理鑒權資訊。

發布及訂閱相關介面

API

功能描述

PublishLocalAudioStream

設定是否發布音頻流,預設會推送音頻流。

IsLocalAudioStreamPublished

查詢當前是否推音頻流。

SetDefaultSubscribeAllRemoteAudioStreams

設定是否預設接收音頻流,預設會訂閱所有遠端音頻流。

此介面建議入會前調用。

SubscribeRemoteAudioStream

停止或恢複特定遠端使用者的音頻流拉取。

SubscribeAllRemoteAudioStreams

停止或恢複接收所有遠端音頻流。

PublishLocalVideoStream[1/2]

設定是否發布視頻流。

PublishLocalVideoStream[2/2]

IsLocalVideoStreamPublished

查詢當前是否發布視頻流。

SetDefaultSubscribeAllRemoteVideoStreams

設定是否預設接收視頻流,預設會訂閱所有遠端視頻頻流。

此介面建議入會前調用。

SubscribeRemoteVideoStream

停止/恢複訂閱遠端使用者的視頻流。

SubscribeAllRemoteVideoStreams

停止或恢複接收所有遠端視頻流。

SubscribeRemoteMediaStream[1/2]

停止或恢複特定遠端使用者的媒體流。

建議在音視頻都存在且需要控制時使用此介面。

SubscribeRemoteMediaStream[2/2]

停止或恢複特定遠端使用者的媒體流。

建議在音視頻都存在且需要控制時使用此介面。

SubscribeRemoteDestChannelStream

停止或恢複跨頻道特定遠端使用者的媒體流。

SetRemoteAudioVolume

調節本地播放的指定遠端使用者音量。

音訊裝置管理相關介面

API

功能描述

MuteLocalMic

設定是否停止發布本地音頻。

MuteRemoteAudio

設定是否停止播放遠端音頻流。

MuteAllRemoteAudio

停止或恢複遠端所有的音頻播放。

StartAudioCapture[1/2]

開啟音頻採集。

StartAudioCapture[2/2]

開啟音頻採集。

StopAudioCapture

關閉音頻採集。

EnableAudioVolumeIndication

開啟音量檢測功能。

StartAudioPlayer

開啟音頻播放裝置。

StopAudioPlayer

關閉音頻播放。

SetPlayoutVolume

設定播放音量。

SetRecordingVolume

設定錄音音量。

PlayAudioFileTest

播放音頻檔案。

StopAudioFileTest

停止播放音頻檔案。

StartAudioCaptureTest

通話前開啟音頻採集測試。

StopAudioCaptureTest

關閉音頻採集測試。

EnableSystemAudioRecording

開啟/關閉系統聲音採集推送。

IsSystemAudioRecording

當前是否開啟系統聲音採集推送。

SetSystemAudioRecordingVolume

設定系統聲音採集推送音量。

GetSystemAudioRecordingVolume

擷取當前設定系統聲音採集推送音量。

SetSystemAudioPlayoutVolume

設定系統聲音播放音量。

GetSystemAudioPlayoutVolume

擷取當前設定系統聲音播放音量。

GetAudioCaptureList

擷取音頻採集裝置列表。

GetCurrentAudioCaptureName

擷取當前音頻採集裝置名稱。

GetCurrentAudioCaptureID

擷取當前音頻採集裝置ID。

SetCurrentAudioCaptureName

設定指定名稱的音頻採集裝置為當前使用裝置。

SetCurrentAudioCaptureID

設定當前音頻採集裝置ID。

GetAudioPlayerList

擷取當前音頻播放裝置列表。

GetSystemRecordAudioPlayerList

擷取當前音頻系統播放裝置列表。

GetCurrentAudioPlayerName

擷取當前音頻播放裝置名稱。

GetCurrentAudioPlayerID

擷取當前音頻播放裝置ID。

SetCurrentAudioPlayerName

設定指定的名稱裝置為當前使用的播放裝置。

SetCurrentAudioPlayerID

設定指定ID的裝置為當前使用的播放裝置。

SetRecordingDeviceVolume

設定音頻採集裝置的音量。

GetRecordingDeviceVolume

擷取音頻採集裝置的音量。

SetPlaybackDeviceVolume

設定音頻播放裝置的音量。

GetPlaybackDeviceVolume

擷取音頻播放裝置的音量。

SetRecordingDeviceMute

設定音頻採集裝置的mute狀態。

GetRecordingDeviceMute

擷取音頻採集裝置的mute狀態。

SetPlaybackDeviceMute

設定音頻播放裝置的mute狀態。

GetPlaybackDeviceMute

擷取音頻播放裝置的mute狀態。

音頻變聲與混響

API

功能描述

SetAudioEffectVoiceChangerMode

設定變聲音效模式。

SetAudioEffectPitchValue

設定變調參數。

SetAudioEffectReverbMode

設定混響音效模式。

SetAudioEffectReverbParamType

設定混響音效類型和具體參數。

setAudioEffectBeautifyMode

設定預設的美聲音效模式。

setAudioEffectEqualizationParam

設定音頻均衡器參數(EQ),調節指定頻段的增益。

自訂音頻輸入

API

功能描述

AddExternalAudioStream

增加外部音頻流。

PushExternalAudioStreamRawData

輸入外部音頻流資料。

SetExternalAudioStreamPublishVolume

設定推流音量。

GetExternalAudioStreamPublishVolume

擷取推流音量。

SetExternalAudioStreamPlayoutVolume

設定外部音頻流播放音量。

GetExternalAudioStreamPlayoutVolume

擷取外部音頻流播放音量。

RemoveExternalAudioStream

移除外部音頻流。

音頻伴奏

API

功能描述

GetAudioFileInfo

擷取音頻檔案資訊。

StartAudioAccompany

開始伴奏混音。

StopAudioAccompany

停止伴奏混音。

SetAudioAccompanyVolume

設定伴奏音量。

SetAudioAccompanyPublishVolume

設定伴奏推流音量。

GetAudioAccompanyPublishVolume

擷取伴奏推流音量。

SetAudioAccompanyPlayoutVolume

設定伴奏本地播放音量。

GetAudioAccompanyPlayoutVolume

擷取伴奏本地播放音量。

PauseAudioAccompany

暫停伴奏混音。

ResumeAudioAccompany

重新開始伴奏混音。

GetAudioAccompanyDuration

擷取伴奏檔案時間長度, 單位為毫秒。

GetAudioAccompanyCurrentPosition

擷取伴奏檔案播放進度,單位為毫秒。

SetAudioAccompanyPosition

設定伴奏檔案的播放位置。

音效檔案

API

功能描述

PreloadAudioEffect

預先載入音效檔案。

UnloadAudioEffect

刪除預先載入的音效檔案。

PlayAudioEffect

開始播放音效。

StopAudioEffect

停止播放音效。

StopAllAudioEffects

停止播放所有音效。

PauseAudioEffect

暫停音效。

PauseAllAudioEffects

暫停所有音效。

ResumeAudioEffect

恢複指定音效檔案。

ResumeAllAudioEffects

恢複所有音效檔案。

SetAudioEffectPublishVolume

設定音效推流混音音量。

GetAudioEffectPublishVolume

擷取音效推流混音音量。

SetAllAudioEffectsPublishVolume

設定所有音效推流混音音量。

SetAudioEffectPlayoutVolume

設定音效本地播放音量。

GetAudioEffectPlayoutVolume

擷取音效本地播放音量。

SetAllAudioEffectsPlayoutVolume

設定所有音效本地播音量。

視頻裝置管理相關介面

API

功能描述

SetLocalViewConfig

為本地預覽設定渲染視窗以及繪製參數。

SetCameraCapturerConfiguration

設定網路攝影機採集偏好。

EnableLocalVideo

禁用或重新啟用本地視頻採集。

MuteLocalCamera

設定是否停止發布本地視頻流。

SetRemoteViewConfig

為遠端的視頻設定渲染視窗以及繪製參數。

IsCameraOn

檢查網路攝影機是否開啟。

SetVideoEncoderConfiguration

設定視頻編碼屬性。

SetVideoDecoderConfiguration

設定視頻解碼屬性。

StartPreview

開始本地預覽。

StopPreview

停止本地預覽。

setVideoMirrorMode

設定預覽和推流鏡像能力。

SetCapturePipelineScaleMode

設定採集縮放時機,視頻資料是採集的時候立即縮放還是編碼時才進行縮放。

GetCameraList

擷取可用網路攝影機列表。

GetCurrentCameraName

擷取當前使用網路攝影機名稱。

GetCurrentCameraID

擷取當前使用網路攝影機ID。

SetCurrentCameraName

設定指定名稱的網路攝影機為當前使用網路攝影機。

SetCurrentCameraID

設定指定ID的網路攝影機為當前使用網路攝影機。

GetCurrentCameraSupportedResolutionList

擷取當前使用的網路攝影機支援的解析度列表。

配置視頻資料回調

API

功能描述

RegisterVideoSampleObserver

註冊視頻資料輸出對象。

UnRegisterVideoSampleObserver

取消註冊視頻資料輸出對象。

SnapshotVideo

視頻截圖功能。

配置音頻資料回調

API

功能描述

RegisterAudioFrameObserver

註冊音頻資料回調。

UnRegisterAudioFrameObserver

取消訂閱音頻資料輸出。

EnableAudioFrameObserver

設定音頻回調參數。

自訂視頻輸入

API

功能描述

SetExternalVideoSource

啟用外部視頻輸入源。

PushExternalVideoFrame

輸入視頻資料。

桌面共用介面

API

功能描述

StartScreenShareByDesktopId

開始共用指定的案頭ID對應的螢幕流。

StartScreenShareByScreenRegion

開始共用螢幕指定地區的視頻流。

StartScreenShareByWindowId

根據使用者指定的視窗ID,將其作為視頻源進行視頻流的共用與推送。

StopScreenShare

停止螢幕畫面分享。

ResumeScreenShare

重新開始畫面共用。

PauseScreenShare

暫停螢幕畫面分享。

IsScreenSharePublished

查詢是否已設定推送螢幕畫面分享。

UpdateScreenShareConfig

更新螢幕畫面分享配置。

CheckWindowSourceVaild

判斷共用的視窗ID對應的視窗是否有效。

GetScreenShareConfig

返回當前螢幕畫面分享的配置資訊。

GetScreenShareSourceInfo

根據指定的源擷取對象列表。

GetCurrentScreenShareSourceId

擷取當前共用的螢幕畫面分享源ID。

GetCurrentScreenShareSourceType

根據指定的源擷取對象列表。

GetDesktopRegion

根據指定的源ID和源標題擷取桌面共用範圍。

SetScreenShareEncoderConfiguration

設定螢幕流視頻編碼屬性。

直播旁路介面

API

功能描述

StartPublishLiveStream

開啟旁路直播。

UpdatePublishLiveStream

更新旁路直播相關參數。

StopPublishLiveStream

停止旁路直播。

GetPublishLiveStreamState

擷取旁路直播狀態。

StartLastmileDetect

開始通話前網路品質探測。

StopLastmileDetect

停止通話前網路品質探測。

網路品質探測介面

API

功能描述

StartLastmileDetect

開始通話前網路品質探測。

StopLastmileDetect

停止通話前網路品質探測。

SEI

API

功能描述

SendMediaExtensionMsg

發送媒體擴充資訊,內部使用SEI實現。

SendMediaExtensionMsgEx

發送媒體擴充資訊(擴充),內部使用SEI實現。

其他介面

API

功能描述

SetParameter

設定自訂參數。

GetParameter

擷取自訂參數。

SetLogDirPath

設定SDK記錄檔儲存路徑。

SetLogLevel

設定日誌等級。

GetNetworkTime

擷取時間軸時間。

SendDataChannelMessage

發送data channel 訊息。

回調事件

AliEngineEventListener

API

功能描述

OnConnectionStatusChange

網路連結狀態回調;客戶需要關心此回調。

OnLocalDeviceException

本地裝置異常回調;客戶需要關心此回調。

OnAuthInfoWillExpire

使用者鑒權資訊即將到期通知,收到後30秒鑒權到期;客戶需要關心此回調。

OnAuthInfoExpired

使用者調用需要鑒權的介面時,服務端返回資訊到期。

OnJoinChannelResult

加入頻道結果回調。

OnLeaveChannelResult

離開頻道結果回調。

OnRemoteUserOffLineNotify

遠端使用者離線通知。

OnRemoteUserOnLineNotify

遠端使用者上線通知。

OnRemoteTrackAvailableNotify

遠端推流語音總機。

OnBye

被伺服器踢出/會議結束頻道的訊息。

OnAudioPublishStateChanged

音頻推流狀態通知。

OnAudioSubscribeStateChanged

音頻拉流狀態通知。

OnUserAudioMuted

遠端使用者靜音通知。

OnUserAudioInterruptedBegin

音訊裝置打斷開始通知。

OnUserAudioInterruptedEnded

音訊裝置打斷結束通知。

OnVideoPublishStateChanged

視頻推流變更回調。

OnVideoSubscribeStateChanged

相機流訂閱情況變更回調。

OnUserVideoMuted

對端使用者發送視頻黑幀資料發送通知。

OnUserVideoEnabled

對端使用者關閉相機流採集發送通知。

OnUserWillResignActive

遠端使用者應用退到後台。

OnUserWillBecomeActive

遠端使用者應用返回前台。

OnAudioEffectFinished

本地音效播放結束回調。

OnAudioVolumeCallback

訂閱的音頻音量,語音狀態和uid。

OnActiveSpeaker

語音激勵,監測到活躍使用者回調。

OnPublishLiveStreamStateChanged

旁路推流狀態改變回調。

OnPublishTaskStateChanged

旁路任務狀態改變回調。

OnNetworkQualityChanged

網路品質變化回調。

OnLastmileDetectResultWithQuality

通話前網路品質探測的回調,開始探測3s左右提供該回調。

OnLastmileDetectResultWithBandWidth

通話前網路品質探測的結果回調,探測30s左右提供該回調。

OnOccurError

如果engine出現error,通過這個回調通知app。

OnFirstAudioPacketSend

音頻首包發送回調。

OnFirstAudioPacketReceived

音頻首包接收回調。

OnFirstVideoPacketSend

視頻首包發送回調。

OnFirstVideoPacketReceived

視頻首包接收回調。

OnFirstRemoteAudioDecoded

已解碼遠端音頻首幀回調。

OnFirstRemoteVideoFrameDrawn

遠端使用者的第一幀視訊框架顯示時觸發這個訊息。

OnFirstLocalVideoFrameDrawn

預覽開始顯示第一幀視訊框架時觸發這個訊息。

OnTestAudioVolumeCallback

通話前音頻採集檢測的音量回調。

OnAudioAccompanyStateChanged

本地伴奏播放狀態回調。

OnAudioFileInfo

音頻檔案資訊回調。

OnRemoteAudioAccompanyStarted

遠端使用者伴奏播放開始回調。

OnRemoteAudioAccompanyFinished

遠端使用者伴奏播放結束回調。

OnStats

即時資料回調(2s觸發一次)。

OnLocalVideoStats

本地視頻統計資訊(2s 觸發一次)。

OnRemoteVideoStats

遠端視頻統計資訊(2s 觸發一次)。

OnLocalAudioStats

本地音頻統計資訊(2s 觸發一次)。

OnRemoteAudioStats

遠端音頻統計資訊(2s 觸發一次)。

OnMediaExtensionMsgReceived

收到媒體擴充資訊回調。

OnSnapshotComplete

截圖結果回調。

OnLocalAudioStateChange

本地音訊裝置狀態回調。

onLocalVideoStateChanged

本地視頻裝置狀態回調。

OnRemoteUserSubscribedDataChannel

可以開始發送data channel訊息回調。

OnDataChannelMessage

data channel 訊息回調。

IAudioFrameObserver

API

功能描述

OnCapturedAudioFrame

採集裸資料回調。

OnProcessCapturedAudioFrame

3A後資料回調。

OnPublishAudioFrame

推流資料回調。

OnPlaybackAudioFrame

播放資料回調。

OnRemoteUserAudioFrame

遠端拉流資料回調。

IVideoFrameObserver

API

功能描述

OnCaptureVideoSample

本地採集視頻資料回調。

OnPreEncodeVideoSample

本地編碼前視頻資料回調。

OnRemoteVideoSample

遠端視頻資料回調。

GetVideoAlignment

視頻輸出寬度對齊。

GetObservedFramePosition

視頻資料輸出內容。

AliEngineDestroyCompletionCallback

API

功能描述

onDestroyCompletion

銷毀完成回調。

介面詳情

Create

建立AliRtcEngine執行個體。

static AliEngine *Create(const char *extras);

調用時機

請確保在調用 ARTC SDK 其他 APi 前調用該方法建立 AliRtcEngine 執行個體。

調用限制

對於每個 App,SDK 僅支援建立一個 AliRtcEngine 執行個體。

參數說明

名稱

類型

描述

extras

const char *

用於接收來自客戶灰階下發的參數,通過JSON配置SDK的特別功能,可以是Null 字元串。

返回說明

返回一個 AliEngine 類的單例執行個體。

Destroy

銷毀AliRtcEngine執行個體。

static void Destroy(AliEngineDestroyCompletionCallback *callback = nullptr);

銷毀AliRtcEngine 單例對象,調用該方法後將會釋放所有內部使用的資源,你將不能再使用AliRtcEngine的其他方法和任何回調,如需要再次使用需要重新調用Create 建立新的執行個體。

說明

該方法為非同步呼叫,提供callback供開發人員關注destroy完成時機,使用者只有在收到 onDestroyCompletion 回調後才能進行下一次建立,回調前不能完成銷毀。

調用時機

當完成音視頻通訊之後都建議調用該方法釋放執行個體。

調用限制

為避免死結,不建議在任何SDK的回調中調用本方法。

參數說明

參數

類型

描述

callback

AliEngineDestroyCompletionCallback

銷毀完成回調。

QueryInterface

擷取功能介面執行個體。

virtual int QueryInterface(AliEngineInterfaceIdType iid, void** pInterface) = 0;

本介面用於擷取特定類型的功能介面執行個體。在開發音視頻相關應用時,windows 平台下許多進階功能(如音訊裝置管理AliEngineInterfaceAudioDeviceManager、視頻裝置管理AliEngineInterfaceVideoDeviceManager和媒體引擎AliEngineInterfaceMediaEngine)是通過對應的介面類提供的。但在調用相關方法之前,必須通過 QueryInterface 方法擷取這些介面的執行個體。

說明

開發人員在使用介面執行個體之後,如果不再需要,應通過調用對應介面的 Release 方法釋放資源,避免記憶體流失。

參數說明

名稱

類型

描述

iid

AliEngineInterfaceIdType

表示功能介面的類型,告訴 SDK 希望擷取的介面執行個體是什麼類型。

  • AliEngineInterfaceAudioDeviceManager:pInterface擷取成功返回對象為IAliEngineAudioDeviceManager

  • AliEngineInterfaceVideoDeviceManager:pInterface擷取成功返回對象為IAliEngineVideoDeviceManager

  • AliEngineInterfaceMediaEngine:pInterface擷取成功返回對象為IAliEngineMediaEngine

pInterface

void**

返回擷取介面類型的執行個體。傳參樣本如下: AliEngineInterfaceMediaEngine* mediaEngine = nullptr;

傳入 (void**)&mediaEngine

返回說明

  • 0:擷取成功。

  • <0:擷取失敗。

SetH5CompatibleMode

設定是否相容H5。

static void SetH5CompatibleMode(bool comp);

參數說明

名稱

類型

描述

comp

bool

  • true表示相容H5。

  • false表示不相容H5。預設不相容H5。

說明

目前的版本不支援在建立AliRtcEngine執行個體之後更改H5相容模式,必須在建立執行個體之前就調用此方法。

GetH5CompatibleMode

檢查是否設定了H5相容模式。

static bool GetH5CompatibleMode();

返回說明

YES表示相容H5,NO表示不相容H5。

SetEngineEventListener

設定相關監聽事件回調。

virtual int SetEngineEventListener(AliEngineEventListener *listener) = 0;

該方法為 SDK 用於設定回調監聽器的一個方法。通過設定該監聽器,開發人員可以接收引擎中的各種通知事件(如使用者加入、離開頻道、網路狀態變化、音視頻流狀態等)。

開發人員需要實現 AliEngineEventListener 類,來定製具體需要監聽的事件方法。預設所有介面都有空實現,開發人員不需要實現所有方法,可根據自身業務來實現對應的事件方法。

說明
  • 所有的回調方法都是SDK內部的線程,不可以做UI操作,有UI相關操作需要拋主線程操作,不要在回調方法中調用該介面。

  • 不建議在回調方法中做耗時操作,如調用AliEngine本身的Destroy方法,這將有可能引起不必要的阻塞從而影響SDK的運行。

相關回調

在運行過程中如遇到異常情況,會優先嘗試內部重試機制以自動回復。對於無法自行解決的錯誤,SDK 會通過預定義的回調介面通知您的應用程式。以下是一些 SDK 無法處理、需由應用程式層監聽和響應的關鍵回調:

異常發生原因

回調及參數

解決方案

說明

鑒權失敗

OnJoinChannelResult回調中的result返回AliRtcErrJoinBadToken

發生錯誤時App需要檢查Token是否正確。

在使用者主動調用API時,若鑒權失敗,系統將在調用API的回調中返回鑒權失敗的錯誤資訊。

網路連接異常

OnConnectionStatusChange回調返回AliRtcConnectionStatusFailed。

發生該異常時APP需要重新入會。

SDK具備一定時間斷網自動回復能力,但若斷線時間超出預設閾值,會觸發逾時並中斷連線。此時,App應檢查網路狀態並指導使用者重新加入會議。

本地裝置異常

OnLocalDeviceException

發生該異常時App需要檢測許可權、裝置硬體是否正常。

RTC服務支援裝置檢測和異常診斷的能力;當本地裝置發生異常時,RTC服務會通過回調的方式通知客戶本地裝置異常,此時,若SDK無法自行解決問題,則App需要介入以查看裝置是否正常。

被踢下線

OnBye

  • AliRtcOnByeUserReplaced:當發生該異常時排查使用者userid是否相同。

  • AliRtcOnByeBeKickedOut:當發生該異常時,表示被業務踢下線,需要重新入會。

  • AliRtcOnByeChannelTerminated:當發生該異常時,表示房間被銷毀,需要重新入會。

RTC服務提供了管理員可以主動移除參與者的功能。

鑒權將要到期

OnWillAuthInfoExpire

發生該異常時App需要重新擷取最新的鑒權資訊後,再調用refreshAuthInfo重新整理鑒權資訊。

鑒權到期錯誤在兩種情況下出現:使用者調用API或程式執行期間。因此,錯誤反饋將通過API回調或通過獨立的錯誤回調通知。

鑒權到期

OnAuthInfoExpired

發生該異常時App需要重新入會。

鑒權到期錯誤在兩種情況下出現:使用者調用API或程式執行期間。因此,錯誤反饋將通過API回調或通過獨立的錯誤回調通知。

參數說明

名稱

類型

描述

listener

AliEngineEventListener*

引擎事件監聽器。開發人員需要實現 AliEngineEventListener 類,覆蓋需要監聽的事件回調。如果設定為 nullptr,表示取消所有監聽事件。

返回說明

  • 0:成功。

  • 非 0:失敗,可能因為傳入的 listener 參數不合法或 SDK 未正確初始化。

GetSDKVersion

查詢當前 SDK 版本。

static const char *GetSDKVersion();

返回說明

當前的SDK版本號碼,格式為字串,例:"2.5.0.x"。

SetChannelProfile

設定頻道模式。

virtual int SetChannelProfile(const AliEngineChannelProfile channelProfile) = 0;

該介面用於設定頻道模式,目前主要提供視訊通話情境和互動直播情境:

  • 視訊通話模式:所有使用者都是主播角色,可以進行推流和拉流

  • 互動直播模式:需要調用SetClientRole(設定角色),在頻道內推流的使用者佈建主播角色(AliRTCSdkInteractive);如果使用者只需要拉流,不需要推流,則設定觀眾角色(AliRTCSdkLive)。RTC 情境推薦設定為此模式。

說明
  • RTC 情境都推薦使用互動直播模式,即調用本介面設定為AliEngineInteractiveLive

  • 相同頻道內的使用者必須使用同一種頻道情境。

調用時機

該介面只可以在加入頻道之前調用,會議中不可以重新設定,離開頻道後可以重新設定。

參數說明

名稱

類型

描述

profile

AliEngineChannelProfile

頻道類型,RTC情境下都建議設定為AliEngineInteractiveLive,即互動直播模式。

返回說明

  • 0:表示方法調用成功。

  • 其他表示方法調用失敗。

    • -1:SDK未初始化或已銷毀。

SetAudioProfile

設定音頻Profile。

virtual int SetAudioProfile(int audioProfile, int audioScene) = 0;

該介面用於設定音頻編碼模式以及音頻情境模式。詳情請參考音頻常用操作和配置。ARTC SDK 預設使用高音質模式(AliEngineHighQualityMode)和音樂情境模式(AliEngineSceneMusicMode)。如果預設設定無法滿足您的需求,您需要調用此介面進行設定。

調用時機

該介面只可以在加入頻道之前調用,加入頻道後不可以重新設定,離開頻道後可以重新設定。

參數說明

名稱

類型

描述

audio_profile

AliEngineAudioProfile

音頻採集或編碼模式參數,建議使用高音質模式(AliRtcEngineHighQualityMode)。

說明

如果需要與 WEB 互連,需要設定採樣率為 48k。

  • AliEngineLowQualityMode:音頻低音質模式,預設8000Hz採樣率,單聲道,最大編碼碼率12kbps。

  • AliEngineBasicQualityMode:標準音質模式,預設16000Hz採樣率,單聲道,最大編碼碼率24kbps。

  • AliEngineHighQualityMode:預設48000Hz採樣率,單聲道,最大編碼碼率64kbps。

  • AliEngineStereoHighQualityMode:立體聲高音質模式,預設48000Hz採樣率,雙聲道,最大編碼碼率80kbps。

  • AliEngineSuperHighQualityMode:超高音質模式,預設48000Hz採樣率,單聲道,最大編碼碼率96kbps。

  • AliEngineStereoSuperHighQualityMode:立體聲超高音質模式,預設48000Hz採樣率,雙聲道,最大編碼碼率128kbps。

audio_scene

AliEngineAudioScenario

音頻情境模式參數,主要包含:

  • AliEngineSceneMusicMode(建議設定):音樂情境,使用軟體 3A,從手機採集(音質更高)。

  • AliEngineSceneDefaultMode:使用硬體 3A,可以從藍牙裝置採集。

說明

ARTC SDK v6.21及之後的版本請不要設定為聊天室情境(AliRtcSceneChatroomMode)。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

IsAudioOnlyMode

檢查當前是否純音頻模式。

virtual bool IsAudioOnlyMode() = 0;

返回說明

YES表示純音頻模式,NO表示音視頻模式。

SetAudioOnlyMode

設定為純音頻模式還是音視頻模式。

virtual int SetAudioOnlyMode(bool audioOnly) = 0;

參數說明

名稱

類型

描述

audioOnly

bool

  • true表示只有音頻推流和拉流。

  • false表示音視頻都支援,預設值為false。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

JoinChannel[1/3]

加入頻道。

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const char *userName) = 0;

該介面用於加入頻道。ARTC 通過頻道組織使用者,使用者需要加入頻道才能“發布”或“訂閱”音視頻流。本介面與 JoinChannel[2/3]和介面JoinChannel[3/3]均可以加入頻道,區別在於通過的認證方式和傳遞的使用者資訊,具體如下:

  • 本介面為單參入會介面,傳入Token鑒權產生單參入會的 Token 即可入會。RTC 情境推薦使用該介面加入頻道。

  • JoinChannel[2/3]為多參入會介面,需要傳入Token鑒權產生的多參入會 Token,並傳入產生 Token 使用的使用者資訊入會。

  • JoinChannel[3/3]為 AI 即時互動情境使用,傳入單參入會 Token,並根據情境設定使用者屬性capabilityProfile

說明

如果沒有特殊配置,加入頻道時預設訂閱頻道內所有其他使用者的音視頻流,預設推送音視頻流到遠端,如果想要取消預設訂閱可在調用本介面前調用SetDefaultSubscribeAllRemoteAudioStreamsSetDefaultSubscribeAllRemoteVideoStreams關閉對音頻流或視頻流的訂閱。

調用時機

需要在建立引擎後調用。

調用限制

  • 加入頻道成功後,如果中途需要加入其他頻道,必須先調用LeaveChannel離開目前通道,並確保收到OnLeaveChannelResult回調,之後才能再次調用入會。

  • 該方法僅支援使用者一次加入一個頻道。

  • 使用不同 App ID 的 App 不能互連。

  • 加入頻道失敗重試時無需調用。

相關回調

成功調用該介面後會觸發以下回調:

參數說明

參數

類型

描述

token

const char *

單參數入會的鑒權資訊。

channelId

const char *

入會頻道,必須和產生Token的值一樣。

userId

const char *

入會的userid,必須和產生token的值一樣。

userName

const char *

使用者的顯示名稱(不是使用者ID)。

返回說明

0表示方法調用成功,非0表示方法調用失敗。

JoinChannel[2/3]

加入頻道。

virtual int JoinChannel(const AliEngineAuthInfo &authInfo,
                                 const char *userName) = 0;

該介面用於加入頻道。ARTC 通過頻道組織使用者,使用者需要加入頻道才能“發布”或“訂閱”音視頻流。本介面與 JoinChannel[1/3]和介面JoinChannel[3/3]均可以加入頻道,區別在於通過的認證方式和傳遞的使用者資訊,具體如下:

  • JoinChannel[1/3]為單參入會介面,傳入Token鑒權產生單參入會的Token 即可入會。RTC 情境推薦使用該介面加入頻道。

  • 本介面為多參入會介面,需要傳入Token鑒權產生多參入會Token,並傳入產生 Token 使用的使用者資訊入會。

  • JoinChannel[3/3]為 AI 即時互動情境使用,傳入單參入會 Token,並根據情境設定使用者屬性capabilityProfile

說明

調用限制

  • 加入頻道成功後,如果中途需要加入其他頻道,必須先調用LeaveChannel離開目前通道,並確保收到OnLeaveChannelResult回調,之後才能再次調用入會。

  • 該方法僅支援使用者一次加入一個頻道。

  • 使用不同 App ID 的 App 不能互連。

相關回調

成功調用該介面後會觸發以下回調:

參數說明

名稱

類型

描述

authInfo

AliEngineAuthInfo

鑒權資訊。

userName

const char *

使用者的顯示名稱(不是使用者ID)。

JoinChannel[3/3]

加入頻道。

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const AliEngineChannelParam &userParam) = 0;

該介面用於加入頻道。ARTC 通過頻道組織使用者,使用者需要加入頻道才能“發布”或“訂閱”音視頻流。本介面與 JoinChannel[1/3]和介面JoinChannel[2/3]均可以加入頻道,區別在於通過的認證方式和傳遞的使用者資訊,具體如下:

  • JoinChannel[1/3]為 RTC 情境單參入會介面,傳入Token鑒權產生單參入會的 Token 即可入會。RTC 情境推薦使用該介面加入頻道。

  • JoinChannel[2/3]為多參入會介面,需要傳入Token鑒權產生多參入會的 Token,並傳入產生 Token 使用的使用者資訊入會。

  • 本介面為 AI 即時互動情境使用,傳入單參入會 Token,並根據情境設定使用者屬性capabilityProfile,如果要與 AI 智能體通話時設定為AliCapabilityProfileHuman

說明

如果沒有特殊配置,加入頻道時預設訂閱頻道內所有其他使用者的音視頻流,預設推送音視頻流到遠端,如果想要取消預設訂閱可在調用本介面前調用SetDefaultSubscribeAllRemoteAudioStreamsSetDefaultSubscribeAllRemoteVideoStreams關閉對音頻流或視頻流的訂閱。

調用限制

  • 加入頻道成功後,如果中途需要加入其他頻道,必須先調用leaveChannel離開目前通道,並確保收到OnLeaveChannelResult回調,之後才能再次調用加入頻道。

  • 該方法僅支援使用者一次加入一個頻道。

  • 使用不同 App ID 的 App 不能互連。

  • 加入頻道失敗重試時無需調用。

相關回調

成功調用該介面後會觸發以下回調:

參數說明

參數

類型

描述

token

const char *

單參數入會的鑒權資訊。

channelId

const char *

入會頻道,必須和產生token時一樣;可以不傳,此時會預設使用產生token的channelId

userId

const char *

入會的userid,必須和產生token時一樣;可以不傳,此時會預設使用產生token的userId

userParam

AliEngineChannelParam

使用者屬性,如使用者暱稱、類型、自訂ID等。

返回說明

0表示方法調用成功,非0表示方法調用失敗。

LeaveChannel

離開頻道。

virtual int LeaveChannel() = 0;

調用該方法後,SDK 會終止音視頻互動、離開目前通道。

說明
  • 該方法為非同步作業,方法調用成功時並沒有真正退出頻道,需要等待OnLeaveChannelResult 回調後才會真正退出頻道。

  • leaveChannel 完成後請銷毀引擎並將引擎置空。

    mAliRtcEngine->LeaveChannel();
    AliEngine::Destroy();
    mAliRtcEngine = nullptr;

調用時機

  • 應該在加入頻道後需要離開頻道時調用該方法。

  • 如果已經加入頻道且需要加入其他頻道需要調用此介面先退出頻道。

相關回調

返回說明

0表示方法調用成功,其他表示方法調用失敗。

IsInCall

檢查當前是否在頻道中。

virtual bool IsInCall() = 0;

返回說明

true表示在頻道中,false表示不在頻道中。

SetClientRole

設定使用者角色。

virtual int SetClientRole(const AliEngineClientRole clientRole) = 0;

該方法用於設定使用者角色為主播/觀眾。

互動模式下,加入頻道前:

  • 設定使用者角色為主播:SDK預設會自動推送本地音視頻流,並接收其他主播的音視頻流

  • 設定使用者角色為觀眾:SDK不會推送本地的音視頻流,但會接收其他主播的音視頻流。

調用時機

該方法在加入頻道前後均可調用,可以在入會前調用設定使用者角色,也可以在入會後調用進行使用者角色切換。

調用限制

該方法在互動模式下才有效,即調用SetChannelProfile介面設定為AliEngineInteractiveLive時才有效。

互動模式下建議入會前顯式調用設定使用者角色。

參數說明

名稱

類型

描述

role

AliEngineClientRole

使用者角色類型,預設值為AliEngineClientRolelive(觀眾角色),非通訊模式下角色類型才有效。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

GetClientRole

擷取目前使用者角色類型(主播/觀眾)。

virtual AliEngineClientRole GetClientRole() = 0;

返回說明

方法調用成功後,返回AliEngineClientRole對象,該對象為枚舉類型,表示角色類型為主播(0) 或者觀眾(1)。

RefreshAuthInfo[1/2]

重新整理鑒權資訊。

virtual int RefreshAuthInfo(const AliEngineAuthInfo &authInfo) = 0;

該方法用於更新鑒權資訊。Token 會在一定時間後失效,此時 SDK 將無法和伺服器建立串連。

說明

本介面與RefreshAuthInfo[2/2]功能均為更新鑒權資訊,只是本介面用於更新多參入會的 Token,RefreshAuthInfo[2/2]使用者更新單參入會的 Token。有關 Token 產生請參考Token鑒權

調用時機

在以下情況下:

  • 當收到OnAuthInfoWillExpire回調報告鑒權資訊即將到期時,推薦你在你的服務端重建 Token,然後調用該方法傳入新的 Token。

  • 如果沒有及時更新 Token,會觸發OnAuthInfoExpired通告鑒權已經到期,此時需要重建 Token 然後調用JoinChannel重新加入頻道。

參數說明

名稱

類型

描述

authInfo

AliEngineAuthInfo

鑒權資訊。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

RefreshAuthInfo[2/2]

重新整理鑒權資訊。

virtual int RefreshAuthInfo(const char *token) = 0;

該方法用於更新 Token。Token 會在一定時間後失效,此時 SDK 將無法和伺服器建立串連。

說明

本介面與RefreshAuthInfo[1/2]功能均為更新鑒權資訊,只是本介面用於更新單參入會的 Token,RefreshAuthInfo[1/2]使用者更新多參入會的 Token。有關 Token 產生請參考Token鑒權

調用時機

在以下情況下,推薦你在你的服務端重建 Token,然後調用該方法傳入新的 Token:

  • 當收到OnAuthInfoWillExpire回調報告鑒權資訊即將到期時。

  • 如果沒有及時更新 Token,會觸發OnAuthInfoExpired通告鑒權已經到期,此時需要調用JoinChannel重新加入頻道。

參數說明

名稱

類型

描述

token

const char *token

單參數入會的鑒權資訊。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

PublishLocalAudioStream

設定是否允許發布音頻流。

virtual int PublishLocalAudioStream(bool enabled) = 0;

該方法用於控制是否發布本地採集的音頻流。SDK預設設定推送音頻流,如果您不想預設推送音頻流,可以在入會前調用PublishLocalAudioStream(false)關閉音頻流的推送。

調用時機

加入頻道前後均可調用。加入頻道前調用可修改預設配置,在加入頻道時生效。

相關回調

本地音頻推流結果發生變化時,本端會觸發OnAudioPublishStateChanged回調通知音頻推流最新狀態,遠端會觸發OnRemoteTrackAvailableNotify通知遠端使用者的音視頻流發生變化。

參數說明

名稱

類型

描述

enable

bool

  • true表示發送本地音頻流。

  • false表示停止推流,預設false。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

IsLocalAudioStreamPublished

查詢當前是否允許推音頻流。

virtual bool IsLocalAudioStreamPublished() = 0;

返回說明

true表示允許推送,false表示不允許推送。

SetDefaultSubscribeAllRemoteAudioStreams

設定是否預設接收音頻流。

virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;

該介面用於配置系統是否預設訂閱遠端使用者的音頻流,該設定將影響新加入頻道使用者的音頻流訂閱行為。無特殊情境需求建議設定為 true。

調用時機

加入頻道前後均可調用。

  • 加入頻道前:

    • SDK 加入頻道時預設訂閱遠端使用者的音頻流,如果希望修改此行為,可在加入頻道前調用該介面。

  • 加入頻道後:

參數說明

名稱

類型

描述

sub

bool

  • true表示接收使用者的音頻流。

  • false表示停止接收使用者的音頻流,預設值為true。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SubscribeRemoteAudioStream

停止或恢複特定遠端使用者的音頻流拉取。

virtual int SubscribeRemoteAudioStream(const char* uid, bool sub) = 0;

該介面用於停止或恢複訂閱特定遠端使用者的音頻流,無特殊情境需求建議設定為 true。

說明

SDK 在入會時預設會訂閱所有遠端使用者的音頻流,如果要修改此行為,可以在入會前調用SetDefaultSubscribeAllRemoteAudioStreams(false)取消該預設配置。

參數說明

名稱

類型

描述

uid

const char*

遠端使用者ID。

sub

bool

  • true表示接收指定使用者的音頻流。

  • false表示停止接收指定使用者的音頻流,預設值為true。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SubscribeAllRemoteAudioStreams

停止或恢複接收所有遠端音頻流。

virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;

該介面為訂閱遠端音頻流的總開關,建議設為 true。 如果設定為 false,則會導致:

  • 當前會議中所有遠端音頻停止訂閱;

  • 後續入會的新使用者也不再訂閱;

  • 無法通過SubscribeRemoteAudioStream單獨操控指定使用者的音頻流。

如果需要重新訂閱,請再次調用本介面並設定為 true 恢複訂閱。

說明

SDK 在入會時預設會訂閱所有遠端使用者的音頻流,如果要修改此行為,可以在入會前調用SetDefaultSubscribeAllRemoteAudioStreams(false)取消該預設配置。

參數說明

名稱

類型

描述

sub

bool

  • true表示接收所有使用者的音頻流。

  • false表示停止接收所有使用者的音頻流,預設值為true。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

PublishLocalVideoStream[1/2]

發布/停止發布相機流。

virtual int PublishLocalVideoStream(bool enabled) = 0;

該方法用於控制是否發布本地採集的視頻流。

說明

SDK預設推送視頻流,如果需要關閉視頻流推送,請在入會前調用 PublishLocalVideoStream(false)。

調用時機

加入頻道前後均可調用。

加入頻道前調用可修改預設配置,在加入頻道時生效。

相關回調

本地音頻推流結果發生變化時,本端會觸發OnVideoPublishStateChanged回調通知音頻推流最新狀態,遠端會觸發OnRemoteTrackAvailableNotify通知遠端使用者的音視頻流發生變化。

參數說明

名稱

類型

描述

enable

bool

  • true表示發送視頻。

  • false表示停止發送,預設true。

返回說明

  • 0:介面調用成功。

  • <0:介面調用失敗。

PublishLocalVideoStream[2/2]

設定是否允許發送視頻流。

virtual int PublishLocalVideoStream(bool enabled, AliEngineVideoTrack track) = 0;

該方法用於控制是否發布本地採集的視頻流。

說明

SDK預設推送視頻流,如果需要關閉視頻流推送,請在入會前調用 PublishLocalVideoStream(false)。

調用時機

加入頻道前後均可調用。

加入頻道前調用可修改預設配置,在加入頻道時生效。

相關回調

本地音頻推流結果發生變化時,本端會觸發OnVideoPublishStateChanged回調通知音頻推流最新狀態,遠端會觸發OnRemoteTrackAvailableNotify通知遠端使用者的音視頻流發生變化。

參數說明

名稱

類型

描述

enable

bool

  • true表示發送視頻。

  • false表示停止發送,預設true。

track

AliEngineVideoTrack

視頻流類型,例如相機流、螢幕畫面分享流。

返回說明

  • 0:介面調用成功。

  • <0:介面調用失敗。

IsLocalVideoStreamPublished

查詢當前是否允許發布視頻流。

virtual bool IsLocalVideoStreamPublished() = 0;

返回說明

true表示發布相機流,false表示不發布相機流。

SetDefaultSubscribeAllRemoteVideoStreams

設定是否預設接收視頻流。

virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;

該介面用於設定是否預設訂閱視頻流,SDK 預設訂閱。

說明

SDK 入會時預設訂閱遠端使用者的視頻流,如果希望修改此行為,可在加入頻道前調用該介面。

調用時機

入會前後均可調用。

  • 入會前:

    • 可通過此介面取消預設訂閱設定。

  • 入會後:

    • 如果希望停止預設訂閱,可調用SetDefaultSubscribeAllRemoteVideoStreams(false),則不會訂閱後續加入頻道的使用者的音頻流。

    • 停止預設訂閱後,如果希望恢複訂閱指定使用者的音頻流,請調用 SubscribeRemoteVideoStream 介面,如果希望恢複多個使用者請多次調用。

    • 停止預設訂閱後,調用SetDefaultSubscribeAllRemoteVideoStreams(false)僅恢複後續加入頻道的使用者的音頻流。

參數說明

名稱

類型

描述

sub

bool

  • true表示接收使用者的視頻流。

  • false表示不接收使用者的視頻流,預設值為true。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SubscribeRemoteVideoStream

停止/恢複訂閱遠端使用者的視頻流。

virtual int SubscribeRemoteVideoStream(const char* uid, AliEngineVideoTrack track, bool sub) = 0;

對指定使用者的視頻流進行訂閱和取消訂閱的操作。

說明

SDK 在入會時預設會訂閱所有遠端使用者的視頻流,如果要修改此行為,可以在入會前調用SetDefaultSubscribeAllRemoteVideoStreams(false)取消該預設配置。

調用時機

入會前後均可調用。

參數說明

參數

類型

描述

uid

const char*

遠端使用者識別碼。

track

AliEngineVideoTrack

視頻流類型。

sub

bool

是否訂閱遠端使用者的視頻流,控制訂閱或取消訂閱。

返回說明

  • true:設定成功。

  • false:設定失敗。

SubscribeAllRemoteVideoStreams

停止或恢複接收所有遠端視頻流。

virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;

該介面為訂閱遠端視頻流的總開關,如果設定為 false,則會導致:

如果需要重新訂閱,請再次調用本介面並設定為 true 恢複訂閱。

說明

SDK 在入會時預設會訂閱所有遠端使用者的視頻流,如果要修改此行為,可以在入會前調用SetDefaultSubscribeAllRemoteVideoStreams(false)取消該預設配置。

參數說明

名稱

類型

描述

sub

bool

  • true表示接收所有使用者的視頻流。

  • false表示停止允許接收所有使用者的視頻流,預設值為true。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SubscribeRemoteMediaStream[1/2]

停止或恢複特定遠端使用者的媒體流。

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, bool subVideo,  bool subAudio) = 0;

該介面用於合并訂閱遠端音視頻流。

說明

在該介面中 AliRtcVideoTrack 的AliRtcVideoTrackNo是無效的,設定不會有任何效果。

相關介面

相比SubscribeRemoteMediaStream[2/2],本介面通過兩個布爾型別參數 subVideo、subAudio 決定是否訂閱遠端音視頻流,videoTrack 用於控制拉取哪一路視頻流。

參數說明

參數

類型

描述

uid

const char*

遠端使用者ID。

videoTrack

AliEngineVideoTrack

視頻流類型。

subVideo

boo

停止或恢複特定遠端使用者的視頻流拉取,取值:

  • true(預設值):恢複。

  • false:停止。

subAudio

boo

停止或恢複特定遠端使用者的音頻流拉取,取值:

  • true(預設值):恢複。

  • false:停止。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SubscribeRemoteMediaStream[2/2]

停止或恢複特定遠端使用者的媒體流。

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, AliEngineAudioTrack audioTrack) = 0;

該介面用於合并訂閱遠端音視頻流。

相關介面

相比於SubscribeRemoteMediaStream[1/2],這個介面通過 videoTrack、audioTrack 兩個參數在一個介面中把想要訂閱的狀態告知SDK,例如:

  • 希望訂閱相機流和麥克風流,則在調用時將 videoTrack 和 audioTrack 分別置為 AliRtcVideoTrackCameraAliRtcAudioTrackMic

  • 希望取消訂閱相機流但保留麥克風,則在再次調用時將 videoTrack 和 audioTrack 分別置為AliRtcVideoTrackNoAliRtcAudioTrackMic

  • 如果希望都取消,則在再次調用時將 videoTrack 和 audioTrack 分別置為AliRtcVideoTrackNoAliRtcAudioTrackNo

  • 如果希望同時訂閱相機流和螢幕畫面分享流兩路視頻流,將 videoTrack 設定為AliRtcVideoTrackBoth,音頻同理。

參數說明

參數

類型

描述

uid

const char*

遠端使用者ID。

videoTrack

AliEngineVideoTrack

視頻流類型。

audioTrack

AliEngineAudioTrack

音頻流類型。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SubscribeRemoteDestChannelStream

跨頻道訂閱指定使用者的流。

virtual int SubscribeRemoteDestChannelStream(const char* channelId, const char* uid, AliEngineVideoTrack track, bool sub_audio, bool sub) = 0;

參數說明

參數

類型

描述

channelId

const char*

遠端頻道ID。

uid

const char*

遠端使用者ID。

track

AliEngineVideoTrack

需要訂閱的視頻流。

sub_audio

bool

停止或恢複特定遠端使用者的音頻流拉取,取值:

  • true(預設值):恢複。

  • false:停止。

sub

bool

停止或恢複跨頻道訂閱指定使用者的流。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetRemoteAudioVolume

調節本地播放的指定遠端使用者音量。

virtual int SetRemoteAudioVolume(const char *uid, int volume) = 0;

參數說明

參數

類型

描述

uid

const char*

遠端使用者識別碼。

volume

int

播放音量,取值範圍[0,100]。

0:靜音;

100:原始音量。

返回說明

  • 0:成功。

  • 非 0:失敗。

MuteLocalMic

停止或恢複本地音頻資料發送。

virtual int MuteLocalMic(bool mute, AliEngineMuteLocalAudioMode mode = AliEngineMuteLocalAudioModeDefault) = 0;
說明

靜音是指音頻流發送靜音幀,採集和編碼模組仍然在工作。

調用時機

加入房間前後均可調用。

相關回調

調用成功後,遠端使用者觸發OnUserAudioMuted通知該使用者是否靜音。

參數說明

名稱

類型

描述

mute

bool

  • true表示本地音頻發送空幀。

  • false表示恢複正常,預設值為false。

mode

AliEngineMuteLocalAudioMode

靜音,預設靜音全部。

  • AliEngineMuteLocalAudioModeDefault:靜音全部,包括麥克風和外部輸入音頻。

  • AliEngineMuteLocalAudioModeMuteAll:靜音全部,包括麥克風和外部輸入音頻。

  • AliEngineMuteLocalAudioModeMuteOnlyMic:只靜音麥克風。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

MuteRemoteAudio

停止或恢複遠端的音頻播放。

virtual int MuteRemoteAudio(const char *uid,
                                    bool mute) = 0;

該介面僅用於停止或者恢複遠端指定使用者的音訊播放,但是不影響對遠端音訊拉流和解碼,如果希望取消訂閱某個使用者的音頻流,請調用SubscribeRemoteAudioStream 完成。

調用時機

加入頻道前後均可調用。

參數說明

名稱

類型

描述

uid

const char *

使用者ID。

mute

bool

  • true表示停止播放。

  • false表示恢複播放,預設值為false。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

MuteAllRemoteAudio

停止或恢複遠端所有的音頻播放。

virtual int MuteAllRemoteAudio(bool mute) = 0;

該介面用於停止或恢複遠端所有音頻播放。

說明
  • 本介面僅是停止播放,拉流和解碼不受影響。

  • 支援JoinChannel之前和之後設定。

調用時機

加入頻道前後均可設定。

參數說明

名稱

類型

描述

mute

bool

  • true表示停止播放。

  • false表示恢複播放,預設值為false。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StartAudioCapture[1/2]

開啟音頻採集。

virtual int StartAudioCapture() = 0;

此介面用於控制開啟音頻採集。此外在入會前調用可以控制提前開啟音頻採集,如果不設定,則SDK會自動控制音頻採集裝置。調用stopAudioCapture關閉音頻採集後如果想要開啟,請調用此介面。

調用時機

入會前後均可調用。

相關介面

  • StartAudioCapture[2/2]介面通過參數可以控制離會後音頻採集裝置是否保持開啟狀態。

相關回調

調用此介面修改本地音頻採集狀態後,可通過 OnLocalAudioStateChange 回調來擷取狀態變化。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StartAudioCapture[2/2]

開啟音頻採集。

virtual int StartAudioCapture(bool keepAlive) = 0;

靜音後關閉麥克風採集。

此介面用於控制開啟音頻採集。此外在入會前調用可以控制提前開啟音頻採集,如果不設定,則SDK會自動控制音頻採集裝置。

調用時機

入會前後均可調用。

相關介面

相比StartAudioCapture[1/2],本介面允許通過 keepAlive 參數控制離會後採集裝置是否保持開啟。

相關回調

調用此介面修改本地音頻採集狀態後,可通過 OnLocalAudioStateChange 回調來擷取狀態變化。

參數說明

參數

類型

描述

keepAlive

bool

離會後採集裝置的狀態,取值:

  • true:離會後採集裝置保持開啟狀態。

  • false(預設值):離會後採集裝置關閉。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StopAudioCapture

關閉音頻採集。

virtual int StopAudioCapture() = 0;

調用StartAudioCapture開啟音訊裝置採集後,可以調用此方法停止採集。

相關回調

調用此介面修改本地音頻採集狀態後,可通過 OnLocalAudioStateChange 回調來擷取狀態變化。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

EnableAudioVolumeIndication

設定音量回調頻率和平滑係數。

virtual int EnableAudioVolumeIndication(int interval, int smooth, int reportVad) = 0;

該介面允許 SDK 定期向 App 報告本地發流使用者和瞬時音量最高的遠端使用者的音量相關資訊。

調用時機

加入頻道前後均可調用。

相關回調

成功調用該方法後,如果頻道記憶體在發流使用者時,SDK 會按照設定的時間間隔觸發下面兩個回調:

  • 說話人的音頻音量會通過OnAudioVolumeCallback 回調通知,回調頻率會根據 interval 決定。

  • 語音激勵,當監測到活躍使用者時,說話人uid會通過OnActiveSpeaker回調。

調用時機

入會前後均可調用。

參數說明

名稱

類型

描述

interval

int

時間間隔,單位為毫秒,最小值不得小於10ms,建議設定300~500ms,小於等於0表示不啟用音量提示和說話人提示功能。

smooth

int

平滑係數,取值範圍:[0,9],數值越大平滑程度越高,反之越低,即時性越好,建議設定3。

reportVad

int

說話人檢測開關,取值:

  • 1:開啟,通過onAudioVolumeCallback介面回調每一個說話人的狀態。

  • 0:關閉。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StartAudioPlayer

開啟音頻播放裝置。

virtual int StartAudioPlayer() = 0;

此介面可以控制提前開啟音頻播放,如果不設定,則SDK會在訂閱到音頻流後自動開啟音頻播放。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

StopAudioPlayer

關閉音頻播放。

virtual int StopAudioPlayer() = 0;

此介面可以控制關閉音頻播放,與AliEngine::StartAudioPlayer對應。

參數說明

無。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

SetPlayoutVolume

設定播放音量。

virtual int SetPlayoutVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

播放音量,取值範圍[0,400] 0:靜音; >100:放大音量; <100:減小音量。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

SetRecordingVolume

virtual int SetRecordingVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

播放音量,取值範圍[0,400] 0:靜音; >100:放大音量; <100:減小音量。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

PlayAudioFileTest

播放音頻檔案。

virtual int PlayAudioFileTest(const char* filePath) = 0;

參數說明

名稱

類型

描述

filePath

const char*

要播放的音頻檔案路徑。

返回說明

  • 0:成功。

  • <0:失敗。

StopAudioFileTest

停止播放音頻檔案。

virtual int StopAudioFileTest() = 0;

返回說明

  • 0:成功。

  • <0:失敗。

StartAudioCaptureTest

通話前開啟音頻採集測試。

virtual int StartAudioCaptureTest() = 0;

此介面可以控制開啟音頻採集測試,通過 AliEngineEventListener::OnTestAudioVolumeCallback 回調結果來判斷音頻採集是否正常。

說明

只能入會(JoinChannel)前調用此介面。

返回說明

  • 0:成功。

  • <0:失敗。

StopAudioCaptureTest

關閉音頻採集測試。

virtual int StopAudioCaptureTest() = 0;
說明

只能入會(JoinChannel)前調用此介面。

返回說明

  • 0:成功。

  • <0:失敗。

EnableSystemAudioRecording

開啟/關閉系統聲音採集推送。

virtual int EnableSystemAudioRecording(bool enable, const char *path = nullptr, const char *device_id = nullptr) = 0;

此介面用於開啟或關閉系統聲音採集,如瀏覽器、應用播放的聲音等。

說明

此介面僅支援 Windows 和 macOS。

參數說明

名稱

類型

描述

enable

bool

開啟/關閉系統聲音採集推動。

  • true:開啟。

  • false:關閉。

path

const char*

path為空白,則採集整個系統的聲音;path為exe程式路徑,則啟動此程式並採集其聲音。

device_id

const char*

path為空白,則採集預設音效卡裝置的聲音;否則採集device_id此裝置的播放的聲音,使用GetSystemRecordAudioPlayerList返回的id。

返回說明

  • 0:介面調用成功。

  • <0:介面調用失敗。

IsSystemAudioRecording

當前是否開啟系統聲音採集推送。

virtual bool IsSystemAudioRecording() = 0;
說明

如果需要開啟/關閉系統聲音採集,請調用EnableSystemAudioRecording。此介面僅在 Windows 和 macOS 平台上有效。

返回說明

  • true:開啟狀態。

  • false:關閉狀態。

SetSystemAudioRecordingVolume

設定系統聲音採集推送音量。

virtual int SetSystemAudioRecordingVolume(int volume) = 0;

此介面僅在 Windows 和 macOS 平台上有效。

此介面需要開啟系統聲音採集推送後才能設定,否則設定無效。

參數說明

名稱

類型

描述

volume

int

系統採集的推流音量。範圍為 [0-400]。

返回說明

  • 0:成功。

  • <0:失敗。

GetSystemAudioRecordingVolume

擷取當前設定系統聲音採集推送音量。

virtual int GetSystemAudioRecordingVolume() = 0;

此介面僅在 Windows 和 macOS 平台上有效。

返回說明

系統採集推流音量。

SetSystemAudioPlayoutVolume

設定系統聲音播放音量。

virtual int SetSystemAudioPlayoutVolume(int volume) = 0;

此介面僅在 Windows 和 macOS 平台上有效。

此介面需要開啟系統聲音採集推送後才能設定,否則設定無效。

參數說明

名稱

類型

描述

volume

int

系統採集的播放音量。範圍為 [0-400]。

返回說明

  • 0:成功。

  • <0:失敗。

GetSystemAudioPlayoutVolume

擷取當前設定系統聲音播放音量。

virtual int GetSystemAudioPlayoutVolume() = 0;

此介面僅在 Windows 和 macOS 平台上有效。

返回說明

系統採集播放音量。

GetAudioCaptureList

擷取系統中的錄音裝置列表。

virtual AliEngineDeviceInfoList* GetAudioCaptureList() = 0;

傳回值

AliEngineDeviceInfoList * 錄音裝置列表指標。

GetCurrentAudioCaptureName

擷取使用的錄音裝置名稱。

virtual String GetCurrentAudioCaptureName() = 0;

傳回值

String 當前音頻採集裝置名稱。

GetCurrentAudioCaptureID

擷取使用的錄音裝置ID。

virtual String GetCurrentAudioCaptureID() = 0;

傳回值

當前使用的錄音裝置ID。

SetCurrentAudioCaptureName

選擇錄音裝置名稱。

virtual int SetCurrentAudioCaptureName(const char* captureName) = 0;

參數說明

名稱

類型

描述

captureName

const char *

錄音裝置名稱

傳回值

0成功,其他失敗。

SetCurrentAudioCaptureID

選擇錄音裝置ID。

virtual int SetCurrentAudioCaptureID(const char* captureID) = 0;

參數說明

名稱

類型

描述

captureID

const char *

錄音裝置ID

傳回值

0成功,其他失敗。

GetAudioPlayerList

擷取系統中的擴音器列表。

virtual AliEngineDeviceInfoList* GetAudioPlayerList() = 0;

傳回值

系統中的擴音器列表對象指標 AliEngineDeviceInfoList *

GetSystemRecordAudioPlayerList

擷取系統中的可錄製的擴音器列表(系統內錄使用)。

virtual AliEngineDeviceInfoList* GetSystemRecordAudioPlayerList() = 0;

傳回值

音頻播放裝置列表主要提供給EnableSystemAudioRecording作為最後一個參數使用,採集系統播放音頻使用。

GetCurrentAudioPlayerName

擷取當前使用的擴音器名稱。

virtual String GetCurrentAudioPlayerName() = 0;

傳回值

當前音頻播放裝置名稱

GetCurrentAudioPlayerID

擷取當前使用的擴音器ID。

virtual String GetCurrentAudioPlayerID() = 0;

傳回值

當前音頻播放裝置ID。

SetCurrentAudioPlayerName

選擇擴音器名稱。

virtual int SetCurrentAudioPlayerName(const char* playerName) = 0;

傳回值

音頻播放裝置名稱。

SetCurrentAudioPlayerID

選擇擴音器ID

virtual int SetCurrentAudioPlayerID(const char* playerID) = 0;

參數說明

名稱

類型

描述

playerID

const char *

播放裝置ID

傳回值

0成功,其他失敗。

SetRecordingDeviceVolume

設定音頻採集裝置音量,音量範圍[0, 100]。

virtual int SetRecordingDeviceVolume(int volume) = 0;

參數列表

名稱

類型

描述

volume

int

音量[0..100]。

傳回值

0成功,其他失敗。

GetRecordingDeviceVolume

擷取音頻採集裝置音量。

virtual int GetRecordingDeviceVolume() = 0;

傳回值

>=0返迴音量,其他失敗。

SetPlaybackDeviceVolume

設定音頻播放裝置音量,音量範圍[0, 100]。

virtual int SetPlaybackDeviceVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

音量[0..100]

傳回值

0成功,其他失敗。

GetPlaybackDeviceVolume

擷取音頻播放裝置音量。

virtual int GetPlaybackDeviceVolume() = 0;

傳回值

>=0 系統音量,其他失敗。

SetRecordingDeviceMute

靜音音頻採集裝置。

virtual int SetRecordingDeviceMute(bool mute) = 0;

參數說明

名稱

類型

描述

mute

bool

是否靜音錄音

傳回值

0成功,其他失敗。

GetRecordingDeviceMute

擷取音頻採集裝置靜音狀態

virtual bool GetRecordingDeviceMute() = 0;

傳回值

錄音是否靜音。

SetPlaybackDeviceMute

靜音音頻播放裝置

virtual int SetPlaybackDeviceMute(bool mute) = 0;

參數說明

名稱

類型

描述

mute

bool

是否靜音錄音

傳回值

0成功,其他失敗。

GetPlaybackDeviceMute

擷取音頻播放裝置靜音狀態。

virtual bool GetPlaybackDeviceMute() = 0;

返回說明

播放裝置是否被靜音。

SetAudioEffectVoiceChangerMode

設定變聲音效模式。

virtual int SetAudioEffectVoiceChangerMode(const AliEngineAudioEffectVoiceChangerMode &mode) = 0;

參數說明

名稱

類型

描述

mode

AliEngineAudioEffectVoiceChangerMode

模式值,預設值為AliEngineAudioEffectVoiceChangerOff。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAudioEffectPitchValue

設定變調參數。

virtual int SetAudioEffectPitchValue(double value) = 0;

參數說明

名稱

類型

描述

value

double

取值範圍:[0.5,2.0],預設為1.0,表示音調不變。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAudioEffectReverbMode

設定混響音效模式。

virtual int SetAudioEffectReverbMode(const AliEngineAudioEffectReverbMode& mode) = 0;

參數說明

名稱

類型

描述

mode

AliEngineAudioEffectReverbMode

音效模式,預設值為AliEngineAudioEffectReverbOff。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAudioEffectReverbParamType

設定混響音效類型和具體參數。

virtual int SetAudioEffectReverbParamType(const AliEngineAudioEffectReverbParamType& type,
                                                  float value) = 0;

參數說明

名稱

類型

描述

type

AliEngineAudioEffectReverbParamType

音效混響模式。

value

float

具體參數值。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

setAudioEffectBeautifyMode

設定預設的美聲音效模式。

virtual int SetAudioEffectBeautifyMode(const AliEngineAudioEffectBeautifyMode& mode) = 0;

該介面用於設定 SDK 內部預設的一些美聲模式,適用於語音直播、K歌、語音社交等對人聲音質有美化需求的情境。通過選擇不同的美聲模式,可以改變人聲的聽感效果,如增強磁性、提升清晰度等,從而改善遠端使用者的收聽體驗。

調用時機

加入頻道前後均可調用。

參數說明

參數

類型

描述

mode

AliRtcAudioEffectBeautifyMode

美聲音效模式,詳見枚舉定義。

返回說明

  • 0:設定成功

  • 非 0:設定失敗。

setAudioEffectEqualizationParam

設定音頻均衡器參數(EQ),調節指定頻段的增益。

virtual int SetAudioEffectEqualizationParam(const AliEngineAudioEffectEqualizationBandFrequency &bandIndex, float gain) = 0;

該介面用於對本地採集的人聲或音頻訊號進行圖形均衡器(Graphic Equalizer)調節,通過調整 10 個固定頻段中某一頻段的增益(單位:dB),實現音色定製化處理。適用於語音清晰度最佳化、人聲突出、降噪輔助等情境。

均衡器支援從 31 Hz 到 16 kHz 的完整音頻頻譜調節,共 10 個標準頻段,每個頻段可獨立設定增益值,範圍為 [-15, 15] dB,預設為 0 dB(即無增強或衰減)。

調用限制

  • 不支援在未開啟美聲模式前單獨使用均衡器,必須在調用 setAudioEffectBeautifyMode 之後調用此介面。

參數說明

參數

類型

描述

bandIndex

AliRtcAudioEffectEqualizationBandFrequency

要調節的頻段索引,對應中心頻率(31Hz ~ 16kHz)中的某一段.

gain

float

增益值,單位為 dB,取值 [-15, 15] 。

返回說明

0:設定成功

非 0:設定失敗。

AddExternalAudioStream

增加外部音頻流。

virtual int AddExternalAudioStream(const AliEngineExternalAudioStreamConfig& config) = 0;

該介面用於新增一個外部音頻流。以下為相關步驟:

  1. 調用AddExternalAudioStream介面添加一個外部音頻流並擷取外部音頻流 ID。

  2. 調用PushExternalAudioStreamRawData向建立的音頻流中傳入音頻資料。

  3. 結束通話時,需要調用RemoveExternalAudioStream移除外部音頻流。

如需在頻道中發布自訂採集音頻,可參考文檔自訂音頻採集

參數說明

名稱

類型

描述

config

AliEngineExternalAudioStreamConfig

外部音頻流配置。

返回說明

大於0表示方法調用成功,傳回值為外部音頻流ID,其他表示方法調用失敗。

PushExternalAudioStreamRawData

輸入外部音頻流資料。

virtual int PushExternalAudioStreamRawData(int streamId, AliEngineAudioRawData& data) = 0;

該介面用於向指定的音頻流傳入資料。以下為相關步驟:

  1. 調用AddExternalAudioStream介面添加一個外部音頻流並擷取外部音頻流 ID。

  2. 調用PushExternalAudioStreamRawData向建立的音頻流中傳入音頻資料。

  3. 結束通話時,需要調用RemoveExternalAudioStream移除外部音頻流。

如需在頻道中發布自訂採集音頻,可參考文檔自訂音頻採集

參數說明

名稱

類型

描述

streamId

int

外部音頻流Id。

data

AliEngineAudioRawData

音頻資料。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetExternalAudioStreamPublishVolume

設定外部音頻流推流音量。

virtual int SetExternalAudioStreamPublishVolume(int streamId, int vol) = 0;

參數說明

名稱

類型

描述

streamId

int

外部音頻流Id。

vol

int

推流音量。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetExternalAudioStreamPlayoutVolume

設定外部音頻流推流音量。

virtual int SetExternalAudioStreamPlayoutVolume(int streamId, int vol) = 0;

參數說明

名稱

類型

描述

streamId

int

外部音頻流Id。

vol

int

推流音量。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

GetExternalAudioStreamPublishVolume

擷取外部音頻流推流音量。

virtual int GetExternalAudioStreamPublishVolume(int streamId) = 0;

參數說明

名稱

類型

描述

streamId

int

外部音頻流Id。

返回說明

[0, 100]: 推流音量,小於0表示失敗。

GetExternalAudioStreamPlayoutVolume

擷取外部音頻流播放音量。

virtual int GetExternalAudioStreamPlayoutVolume(int streamId) = 0;

參數說明

名稱

類型

描述

streamId

int

外部音頻流Id。

返回說明

[0, 100]: 播放音量,小於0表示失敗。

RemoveExternalAudioStream

移除外部音頻流。

virtual int RemoveExternalAudioStream(int streamId) = 0;

該方法負責根據傳入的 streamId 移除對應的外部音頻流,與 AddExternalAudioStream方法相對應。

調用時機

如果您想要使用自訂音頻輸入功能,需要調用 AddExternalAudioStream方法添加一個音頻流並擷取外部音頻流 Id,之後調用PushExternalAudioStreamRawData介面向SDK輸入您的音頻資料。在您想要停止自訂音頻輸入時,調用當前介面移除對應的外部音頻流並清理資源。

參數說明

名稱

類型

描述

streamId

int

音頻流ID。

傳回值

0成功,其他失敗。

GetAudioFileInfo

擷取音頻檔案資訊。

virtual int GetAudioFileInfo(const char *filePath) = 0;

非同步介面,可通過AliEngineEventListener::OnAudioFileInfo擷取音頻檔案資訊。

參數說明

名稱

類型

描述

filePath

const char *

音頻檔案路徑。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

StartAudioAccompany

開始伴奏混音。

virtual int StartAudioAccompany(const char *filePath, const AliEngineAudioAccompanyConfig& config) = 0;

非同步介面,可通過AliEngineEventListener::OnAudioAccompanyStateChanged監聽音頻伴奏播放器狀態。

參數說明

名稱

類型

描述

filePath

const char *

音頻檔案路徑。

config

const AliEngineAudioAccompanyConfig

伴奏播放配置。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

StopAudioAccompany

停止伴奏混音。

virtual int StopAudioAccompany() = 0;

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

SetAudioAccompanyVolume

設定伴奏音量。

 virtual int SetAudioAccompanyVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

伴奏音量,取值範圍[0,100]。

  • 0:靜音。

  • 100:原始音量。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

SetAudioAccompanyPublishVolume

設定伴奏推流音量。

virtual int SetAudioAccompanyPublishVolume(int volume) = 0;
說明

設定音量需要在AliEngine::StartAudioAccompany後才會生效。

參數說明

名稱

類型

描述

volume

int

伴奏推流音量,取值範圍[0,100]。

  • 0:靜音。

  • 100:原始音量。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

GetAudioAccompanyPublishVolume

擷取伴奏推流音量。

virtual int GetAudioAccompanyPublishVolume() = 0;

返回說明

伴奏推流的音量,範圍為 [0-100]。

SetAudioAccompanyPlayoutVolume

設定伴奏本地播放音量。

virtual int SetAudioAccompanyPlayoutVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

伴奏播放音量,取值範圍[0,100]。

  • 0:靜音。

  • 100:原始音量。

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

GetAudioAccompanyPlayoutVolume

擷取伴奏本地播放音量。

virtual int GetAudioAccompanyPlayoutVolume() = 0;

返回說明

伴奏本地播放的音量,範圍為 [0-100]。

PauseAudioAccompany

暫停伴奏混音。

virtual int PauseAudioAccompany() = 0;

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

ResumeAudioAccompany

重新開始伴奏混音。

virtual int ResumeAudioAccompany() = 0;

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

GetAudioAccompanyDuration

擷取伴奏檔案時間長度, 單位為毫秒。

virtual int GetAudioAccompanyDuration() = 0;

返回說明

音頻伴奏檔案的時間長度,單位為毫秒。

GetAudioAccompanyCurrentPosition

擷取伴奏檔案播放進度,單位為毫秒。

virtual int GetAudioAccompanyCurrentPosition() = 0;

返回說明

音頻伴奏檔案當前播放位置,單位為毫秒。

SetAudioAccompanyPosition

設定伴奏檔案的播放位置。

virtual int SetAudioAccompanyPosition(int pos) = 0;

返回說明

  • 0:成功。

  • 非 0:失敗,返回錯誤碼。

PreloadAudioEffect

預先載入音效檔案。

virtual int PreloadAudioEffect(unsigned int soundId,
                                       const char *filePath) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

filePath

const char *

音效檔案路徑。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

UnloadAudioEffect

刪除預先載入的音效檔案。

virtual int UnloadAudioEffect(unsigned int soundId) = 0;

參數說明

名稱

類型

描述

soundId

NSInteger

使用者給該音效檔案分配的ID。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

PlayAudioEffect

開始播放音效。

virtual int PlayAudioEffect(unsigned int soundId, const char *filePath, const AliEngineAudioEffectConfig& config) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

filePath

const char *

音效檔案路徑。

config

AliEngineAudioEffectConfig

音效配置。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StopAudioEffect

停止播放音效。

virtual int StopAudioEffect(unsigned int soundId) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StopAllAudioEffects

停止播放所有音效。

- (int)StopAllAudioEffects;

返回說明

0表示方法調用成功,其他表示方法調用失敗。

PauseAudioEffect

暫停音效。

virtual int PauseAudioEffect(unsigned int soundId) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

PauseAllAudioEffects

暫停所有音效。

virtual int PauseAllAudioEffects() = 0;

返回說明

0表示方法調用成功,其他表示方法調用失敗。

ResumeAudioEffect

重新開始播放音效。

virtual int ResumeAudioEffect(unsigned int soundId) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

ResumeAllAudioEffects

重新開始播放所有音效。

virtual int ResumeAllAudioEffects() = 0;

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAudioEffectPublishVolume

設定音效推流音量。

virtual int SetAudioEffectPublishVolume(unsigned int soundId, int volume) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

volume

int

混音音量,取值範圍:[0,100],預設值為50。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

GetAudioEffectPublishVolume

擷取推流音效音量。

virtual int GetAudioEffectPublishVolume(unsigned int soundId) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAllAudioEffectsPublishVolume

設定所有音效本地播放音量。

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

混音音量,取值範圍:[0,100],預設值為50。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAudioEffectPlayoutVolume

設定音效本地播放音量。

virtual int SetAudioEffectPlayoutVolume(unsigned int soundId, int volume) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

volume

int

混音音量,取值範圍:[0,100],預設值為50。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

GetAudioEffectPlayoutVolume

擷取音效本地播放音量。

virtual int GetAudioEffectPlayoutVolume(unsigned int soundId) = 0;

參數說明

名稱

類型

描述

soundId

unsigned int

使用者給該音效檔案分配的ID。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAllAudioEffectsPlayoutVolume

設定所有音效播放音量。

virtual int SetAllAudioEffectsPlayoutVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

混音音量,取值範圍:[0,100],預設值為50。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetAllAudioEffectsPublishVolume

設定所有音效推流音量。

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

參數說明

名稱

類型

描述

volume

int

混音音量,取值範圍:[0,100],預設值為50。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetLocalViewConfig

為本地預覽設定渲染視窗以及繪製參數。

virtual int SetLocalViewConfig(AliEngineVideoCanvas renderConfig,
                                         AliEngineVideoTrack track) = 0;

該方法用於設定本地預覽視圖,調用該方法會綁定本地視頻流的顯示視窗 (view),並設定本機使用者視圖的渲染模式、鏡像模式和旋轉角度等,隻影響本機使用者預覽畫面,不影響推流視頻。如果需要設定遠端使用者介面視圖請調用SetRemoteViewConfig

說明
  • 如果AliEngineVideoCanvas中的view參數為空白,則停止渲染。

  • 如果在播放過程中需要重新設定AliEngineVideoCanvas的參數renderMode,請保持其他參數不變,僅修改renderMode,

  • 如果在播放過程中需要重新設定AliEngineVideoCanvas的參數mirrorMode,請保持其他參數不變,僅修改mirrorMode。

  • 建議顯式調用 StartPreview()啟動本地預覽。

調用時機

該方法在加入頻道前後均可調用。

參數說明

名稱

類型

描述

renderConfig

AliEngineVideoCanvas

渲染參數,包含渲染視窗以及渲染方式。

track

AliEngineVideoTrack

視頻Track的類型。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetCameraCapturerConfiguration

設定網路攝影機採集偏好。

virtual int SetCameraCapturerConfiguration(const AliEngineCameraCapturerConfiguration& config) = 0;

該介面用於配置網路攝影機採集時的偏好,例如網路攝影機方向、採集幀率等。

調用時機

必須在開啟網路攝影機之前設定,例如在以下操作前調用:

  • StartPreview(開始預覽)

  • JoinChannel(加入頻道)

參數說明

名稱

類型

描述

config

AliEngineCameraCapturerConfiguration

網路攝影機採集偏好,包括網路攝影機方向、幀率等。預設值:

  • preference:

    • AliEngineCaptureOutputPreferenceAuto,由 SDK 自動調整採集參數。

    • AliEngineCaptureOutputPreferencePerformance:高清預覽,採集優先保證視頻預覽品質。

    • AliEngineCaptureOutputPreferencePerformance:採集選擇最接近推流的解析度,優先保證裝置效能。

  • fps:-1 表示使用編碼器內部的幀率設定,預設為 15

  • cameraCaptureProfile:0,指定視頻採集的特定解析度。

  • disableVideoCaptureReverse:不根據縱橫比設定翻轉採集視訊框架設定, -1:預設,0:不生效,1:生效。

  • captureObserverOriginal:否回調原始的videoframe資料, -1:預設,0:關閉,1:開啟。

以上-1表示使用SDK內部預設設定;

返回說明

0表示方法調用成功,其他表示方法調用失敗。

EnableLocalVideo

禁用或重新啟用本地視頻採集。

virtual int EnableLocalVideo(bool enabled) = 0;

該方法用於控制本地視頻採集的開啟和關閉,當關閉本地視頻採集時,本地預覽和推流均沒有視頻資料,但是並不影響接收遠端視頻。如果調用此介面關閉了本地網路攝影機採集,那麼本端預覽和遠端推流都會停留在最後一幀。

說明

SDK 中本地視頻採集預設開啟。

調用時機

該方法在加入頻道前後均可調用。

相關回調

成功調用本介面後會通過 OnUserVideoEnabled 回調通知遠端使用者。

參數說明

名稱

類型

描述

enable

bool

true表示恢複正常,false表示停止視頻採集,預設true。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

MuteLocalCamera

停止或恢複本地視頻資料發送。

virtual int MuteLocalCamera(bool mute, AliEngineVideoTrack track) = 0;

推流時可調用此介面實現推送全黑色的視訊框架,本地預覽正常,採集,編碼,發送模組仍然工作,只是視頻內容是黑色幀。

說明

此介面只是控制指定視頻流上是否發送黑幀,採集和資料發送不會停止,如果需要關閉採集請使用EnableLocalVideo介面,如果需要中止視頻資料發送請使用PublishLocalVideoStream介面。

參數說明

名稱

類型

描述

mute

bool

true表示視頻資料發送黑幀,false表示恢複正常,預設值為false。

track

AliEngineVideoTrack

需要改變發布狀態的視頻Track類型。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

SetRemoteViewConfig

為遠端的視頻設定渲染視窗以及繪製參數。

virtual int SetRemoteViewConfig(AliEngineVideoCanvas renderConfig,
                                          const char *uid,
                                          AliEngineVideoTrack track) = 0;

該方法會綁定遠端使用者指定視頻流的顯示視圖,並設定遠端使用者視圖在本地顯示時的渲染模式、鏡像模式和旋轉角度等,隻影響本機使用者看到的視頻畫面。如果需要設定本地預覽視圖,請調用SetLocalViewConfig

  • 如果AliEngineVideoCanvas中的view參數為空白,則停止渲染。

  • 如果在播放過程中需要重新設定AliEngineVideoCanvas的參數renderMode,請保持其他參數不變,僅修改renderMode。

  • 如果在播放過程中需要重新設定AliEngineVideoCanvas的參數mirrorMode,請保持其他參數不變,僅修改mirrorMode。

調用時機

建議在收到OnRemoteTrackAvailableNotify 回調時調用,即遠端使用者視頻可用時設定。

參數說明

名稱

類型

描述

canvas

AliEngineVideoCanvas

渲染參數,包含渲染視窗以及渲染方式。

uid

const char *

使用者ID。

track

AliEngineVideoTrack

需要設定的視頻Track類型。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

IsCameraOn

檢查網路攝影機是否開啟。

virtual bool IsCameraOn() = 0;

返回說明

YES表示網路攝影機已開啟,NO表示網路攝影機沒有開啟。

SetVideoEncoderConfiguration

設定視頻編碼屬性。

virtual void SetVideoEncoderConfiguration(const AliEngineVideoEncoderConfiguration& config) = 0;

該方法用於設定視頻流編碼屬性對應的視頻參數,如解析度、幀率、碼率、視頻方向等。有視頻情境都建議調用此介面。

說明

所有設定的參數都有相應的範圍限制,如果設定的參數不在有效範圍內,SDK會自動調節。

調用時機

該方法在入會前和入會後都可以調用。如果每次入會只需要設定一次相機流視頻編碼屬性,建議在入會前調用。

調用限制

該方法的 mirrorMode 和 setVideoMirrorMode 均可設定視頻推流鏡像,建議只使用一種,同時使用多種會導致鏡像效果疊加從而造成設定鏡像失敗或錯亂。

參數說明

名稱

類型

描述

config

AliEngineVideoEncoderConfiguration

預定義的編碼屬性,預設值:

  • dimensions:[640,480]

  • frameRate:15

  • bitrate:0

  • keyFrameInterval:主要畫面格間隔,單位為毫秒,預設為 0,表示由 SDK 內部控制。

  • forceStrictKeyFrameInterval:是否強制編碼器嚴格按照設定的主要畫面格間隔產生主要畫面格。預設值false。

  • mirrorMode:推流鏡像,預設AliEngineVideoMirrorModeDisabled,詳見

  • orientationMode:0

  • rotation:0

SetVideoDecoderConfiguration

設定視頻解碼屬性。該方法用於設定相機流視頻解碼屬性,包含軟硬解設定、是否啟用 B 幀等。

virtual void SetVideoDecoderConfiguration(const AliEngineVideoDecoderConfiguration& config) = 0;

調用時機

推薦在入會拉流前調用。

參數說明

參數

類型

描述

config

AliEngineVideoDecoderConfiguration

結構體,描述視頻解碼屬性,主要屬性及預設值

StartPreview

開始本地預覽(會自動開啟網路攝影機)。

virtual int StartPreview(int width = 0, int height = 0) = 0;

該介面用於開啟本地視頻預覽並自動開啟網路攝影機,如果需要停止本地預覽,可以調用 StopPreview 介面。

說明

LeaveChannel 離開頻道會自動停止本地預覽;如果沒有在推相機流,則會自動關閉網路攝影機。

調用時機

  • 調用前需要通過 SetLocalViewConfig 為本地預覽設定視圖,否則無法預覽,但不影響推流。

  • 如有需要可以在 JoinChannel 加入頻道前調用此介面開啟預覽,會自動開啟網路攝影機。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StopPreview

停止本地預覽。

virtual int StopPreview() = 0;

該介面用於關閉本地視頻預覽並關閉網路攝影機,停止預覽後本端將保持在最後一幀,不影響推流。

說明

LeaveChannel 離開頻道會自動停止本地預覽;如果沒有在推相機流,則會自動關閉網路攝影機。

調用時機

開啟預覽後如果需要關閉預覽則可以調用此方法。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

setVideoMirrorMode

設定預覽和推流鏡像能力。

virtual int setVideoMirrorMode(AliEngineVideoPipelineMirrorMode mirrorMode) = 0;

設定本地預覽視頻和推送的視頻流是否開啟鏡像模式。

說明

使用此介面的優先順序會高於 SetLocalViewConfig&SetVideoEncoderConfiguration,如果需要設定視頻鏡像模式,建議調用此介面。

調用時機

此介面在入會前和入會後均可以動態設定,SDK內部會選項組,並在可以操作預覽及編碼(推流)的時候對視頻進行操作。

調用限制

此介面與 SetLocalViewConfig&SetVideoEncoderConfiguration裡面的mirrorMode 參數重合,建議僅使用本方法。

參數說明

名稱

類型

描述

mirrorMode

AliEngineVideoPipelineMirrorMode

設定鏡像的模式

返回說明

  • 0:設定成功。

  • <0:設定失敗。

    • AliRtcErrInner: SDK內部狀態錯誤,需檢查是否建立SDK執行個體成功。

SetCapturePipelineScaleMode

設定採集縮放時機,視頻資料是採集的時候立即縮放還是編碼時才進行縮放。

virtual void SetCapturePipelineScaleMode(const AliEngineCapturePipelineScaleMode mode) = 0;

設定視頻資料擷取縮放時機是採集的時候立即縮放還是編碼時才進行縮放。例如當採集的解析度與編碼解析度不一致時可以通過設定縮放的時機來決定預覽資料與推流資料是否一致。

調用時機

此方法需要在開啟網路攝影機之前進行設定,例如在 StartPreview 開始預覽、JoinChannel 加入頻道之前進行設定。

參數說明

名稱

類型

描述

mode

AliEngineCapturePipelineScaleMode

控制採集縮放時機的模式,預設是採集的時候立即縮放。

GetCameraList

擷取網路攝影機列表。

virtual AliEngineDeviceInfoList* GetCameraList() = 0;

傳回值

網路攝影機列表對象指標 AliEngineDeviceInfoList*。

GetCurrentCameraName

擷取當前使用的網路攝影機名稱。

virtual String GetCurrentCameraName() = 0;

傳回值

當前使用的網路攝影機裝置名稱。

GetCurrentCameraID

擷取當前使用的網路攝影機ID

virtual String GetCurrentCameraID() = 0;

傳回值

當前使用的網路攝影機ID。

SetCurrentCameraName

選擇網路攝影機名稱。

virtual int SetCurrentCameraName(const char* cameraName) = 0;

參數說明

名稱

類型

描述

cameraName

const char *

裝置名稱

傳回值

0成功,其他失敗。

SetCurrentCameraID

選擇網路攝影機ID。

virtual int SetCurrentCameraID(const char* cameraID) = 0;

參數說明

名稱

類型

描述

cameraID

const char *

裝置ID。

傳回值

0成功,其他失敗。

GetCurrentCameraSupportedResolutionList

擷取支援的解析度。

virtual AliEngineVideoResolutionList * GetCurrentCameraSupportedResolutionList(int source) = 0 ;

參數說明

名稱

類型

描述

source

int

裝置類型。

傳回值

!=NULL 擷取支援的解析度列表,NULL失敗。

SetExternalVideoSource

啟用外部視頻輸入源。

virtual int SetExternalVideoSource(bool enable,
        AliEngineVideoTrack type,
        AliEngineRenderMode renderMode) = 0;

參數說明

名稱

類型

描述

enable

bool

true表示開啟,false表示關閉。

type

AliEngineVideoTrack

流類型。

renderMode

AliEngineRenderMode

渲染模式。

PushExternalVideoFrame

輸入視頻資料。

virtual int PushExternalVideoFrame(const AliEngineVideoRawData &frame,
        AliEngineVideoTrack type) = 0;

參數說明

名稱

類型

描述

frame

AliEngineVideoRawData

幀資料。

type

AliEngineVideoTrack

流類型。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StartPublishLiveStream

開啟旁路直播。

virtual int StartPublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

參數說明

名稱

類型

描述

streamUrl

const String

推流地址。

transcoding

AliEngineLiveTranscodingParam

推流所需參數。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

UpdatePublishLiveStream

更新旁路直播相關參數。

virtual int UpdatePublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

參數說明

名稱

類型

描述

streamUrl

const String

推流地址。

transcoding

AliEngineLiveTranscodingParam

推流所需參數。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

StopPublishLiveStream

停止旁路直播。

virtual int StopPublishLiveStream(const String& streamURL) = 0;

參數說明

名稱

類型

描述

streamURL

const String

推流地址。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

GetPublishLiveStreamState

擷取旁路直播狀態。

virtual AliEngineLiveTranscodingState GetPublishLiveStreamState(const String& streamURL) = 0;

參數說明

參數

類型

說明

streamURL

const String

推流地址。

返回說明

返回旁路直播狀態。

StartLastmileDetect

開始網路品質探測。本網的一些問題可能會導致音視訊通話失敗,通過調用此介面可以擷取上下行網路的頻寬、丟包率、抖動、鏈路 RTT 等資訊,協助定位和解決相關網路問題。

 virtual int StartLastmileDetect(bool uplink, bool downlink, int uplinkBandWidth, int downlinkBandWidth) = 0;

調用時機

該介面需要在JoinChannel前調用,探測結果會通過回調給出。一次網路探測可能耗時較長,可按需調用StopLastmileDetect終止網路探測。

調用限制

SDK 在同一時刻只能執行一個網路探測,在上一次探測結束前重複調用會失效。

相關回調

成功調用該方法後,會觸發兩個回調:

參數說明

參數

類型

描述

uplink

bool

是否探測上行鏈路。

downlink

bool

是否探測下行鏈路。

uplinkBandWidth

int

上行鏈路探測的最大頻寬。

downlinkBandWidth

int

下行鏈路探測的最大頻寬。

返回說明

  • 0: 調用本方法成功。

  • <0: 調用本方法失敗,例如已經入會等。

StopLastmileDetect

停止網路品質探測。調用此介面可以停止網路品質探測。

virtual int StopLastmileDetect() = 0;

調用時機

需要在建立引擎後、入會前調用。

返回說明

  • 0: 調用此介面成功。

  • <0:調用此介面失敗。

SendMediaExtensionMsg

發送媒體擴充資訊,內部使用SEI實現。

virtual int SendMediaExtensionMsg(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame) = 0;

SDK提供了發送和接收媒體擴充資訊的功能,接收端參考 AliEngineEventListener::OnMediaExtensionMsgReceived。使用媒體擴充資訊時需要複用音視頻資料通道,因此必須控制自訂訊息的發送頻率和訊息資料長度,使用限制如下:

  • 每秒最多發送profile設定的fps條訊息。

  • 為了不影響媒體資料的傳輸品質,自訂訊息體長度限制為4K Bytes,可以用來傳輸少量資料。

  • sendMediaExtensionMsg函數中repeatCount參數為自訂訊息冗餘度,若大於1,則會發送多次,防止網路丟包導致的訊息丟失,此時房間裡的其他人也會收到多次相同的訊息,需要去重。

  • 發送的自訂訊息,在旁路直播時,房間裡的訂閱者也一樣會收到,設定為-1為永久發送data資料,除非重新設定sendMediaExtensionMsg。

  • 同一時刻只有一個 sendMediaExtensionMsg 會被發送,意味著調用sendMediaExtensionMsg會覆蓋上一次調用的sendMediaExtensionMsg,如果上次的調用沒有發送或者沒有發送完成。

參數說明

名稱

類型

描述

message

const int8_t *

擴充資訊內容,長度限制為最大4K位元組

length

uint32_t

擴充資訊長度,長度限制為最大4K(4*1024)位元組。

repeatCount

int32_t

重複次數,代表訊息冗餘度,用於防止網路丟包導致的訊息丟失-1表示無限重發,除非再一次調用SendMediaExtensionMsg。

delay

uint32_t

延遲多少毫秒發送用來延遲多少毫秒之後再發送SEI,因SEI是附在編碼之後的h264/h265流,所以實際的延遲會比設定的延遲略大。

isKeyFrame

bool

是否只給主要畫面格加SEI 設定為true,則只給主要畫面格加SEI資訊。

返回說明

  • 0:成功。

  • <0:失敗,返回錯誤碼。

    • ERR_INNER(-1): SDK內部錯誤,可能的情況為SDK未初始化或者SDK銷毀後調用。

SendMediaExtensionMsgEx

發送媒體擴充資訊,內部使用SEI實現。

virtual int SendMediaExtensionMsgEx(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame, int32_t payloadType) = 0;

SDK提供了發送和接收媒體擴充資訊的功能,接收端參考 AliEngineEventListener::OnMediaExtensionMsgReceived。使用媒體擴充資訊時需要複用音視頻資料通道,因此必須控制自訂訊息的發送頻率和訊息資料長度,使用限制如下:

  • 每秒最多發送profile設定的fps條訊息;

  • 為了不影響媒體資料的傳輸品質,自訂訊息體長度限制為4K Bytes,可以用來傳輸少量資料;

  • sendMediaExtensionMsg函數中repeatCount參數為自訂訊息冗餘度,若大於1,則會發送多次,防止網路丟包導致的訊息丟失,此時房間裡的其他人也會收到多次相同的訊息,需要去重;

  • 發送的自訂訊息,在旁路直播時,房間裡的訂閱者也一樣會收到,設定為-1為永久發送data資料,除非重新設定sendMediaExtensionMsg;

  • 同一時刻只有一個 sendMediaExtensionMsg 會被發送,意味著調用sendMediaExtensionMsg會覆蓋上一次調用的sendMediaExtensionMsg,如果上次的調用沒有發送或者沒有發送完成;

參數說明

名稱

類型

描述

message

const int8_t *

擴充資訊內容, 長度限制為最大4K 位元組

length

uint32_t

擴充資訊長度,長度限制為最大4K(4*1024)位元組。

repeatCount

int32_t

重複次數,代表訊息冗餘度,用於防止網路丟包導致的訊息丟失-1表示無限重發,除非再一次調用SendMediaExtensionMsg。

delay

uint32_t

延遲多少毫秒發送用來延遲多少毫秒之後再發送SEI,因SEI是附在編碼之後的h264/h265流,所以實際的延遲會比設定的延遲略大

isKeyFrame

bool

是否只給主要畫面格加SEI 設定為true,則只給主要畫面格加SEI資訊

payloadType

int32_t

資料類型欄位,payload=5 payload=[100..254]。

返回說明

  • 0:成功。

  • <0:失敗,返回錯誤碼。

    • ERR_INNER(-1): SDK內部錯誤,可能的情況為SDK未初始化或者SDK銷毀後調用。

OnConnectionStatusChange

網路連接狀態改變的回調。

virtual void OnConnectionStatusChange(int status, int reason) {};

參數說明

參數

類型

描述

status

AliEngineConnectionStatus

目前狀態值。

reason

AliEngineConnectionStatusChangeReason

引起狀態變化的具體原因。

OnLocalDeviceException

本地裝置異常回調;客戶需要關心此回調。

virtual void OnLocalDeviceException(AliEngineLocalDeviceType deviceType, AliEngineLocalDeviceExceptionType exceptionType, const char* msg){};

參數說明

參數

類型

描述

deviceType

AliEngineLocalDeviceType

裝置類型。

exceptionType

AliEngineLocalDeviceExceptionType

裝置異常類型。

msg

const char*

異常時攜帶的資訊。

OnAuthInfoWillExpire

使用者鑒權資訊即將到期通知,收到後30秒鑒權到期;客戶需要關心此回調。

virtual void OnAuthInfoWillExpire() {};

該回調錶示使用者的鑒權資訊即將失效,收到此回調後 30 秒鑒權到期,你需要重新擷取新的 Token,然後通過下列任意一種方式更新鑒權資訊:

  • 調用RefreshAuthInfo介面更新鑒權資訊。

  • 調用LeaveChannel離開目前通道,然後再調用JoinChannel重新加入頻道。

觸發時機

SDK 會在使用者鑒權資訊到期前 30s 觸發此回調,收到該回調後應該及時更新鑒權資訊。

OnAuthInfoExpired

使用者調用需要鑒權的介面,服務端返回資訊到期。

virtual void OnAuthInfoExpired() {};

該回調錶示使用者鑒權資訊已到期,如果想繼續在會中,需要在服務端產生新的 Token,然後通過下列方法更新鑒權資訊:

  • 調用LeaveChannel離開目前通道,然後再調用JoinChannel重新加入頻道。

觸發時機

當使用者鑒權資訊到期時會觸發此回調。

OnJoinChannelResult

加入頻道結果回調(該回調等同於調用JoinChannel介面的block操作,即處理加入頻道之後的事件,選擇其一即可)。

virtual void OnJoinChannelResult(int result, const char *channel, const char *userId, int elapsed) {}

觸發條件

當應用調用 JoinChannel方法時,該回調錶示成功/失敗加入頻道,並且返回頻道加入的相關資訊以及加入頻道耗時。

參數說明

參數

類型

描述

result

int

加入頻道結果,成功返回0;失敗返回錯誤碼,詳情請參見錯誤碼列表,下面為一些常見錯誤碼:

  • ERR_JOIN_BAD_APPID:AppId不存在

  • ERR_JOIN_INVALID_APPID:AppId已失效

  • ERR_JOIN_BAD_CHANNEL:頻道不存在

  • ERR_JOIN_INVALID_CHANNEL:頻道已失效

  • ERR_JOIN_BAD_TOKEN:Token不存在

  • ERR_JOIN_TIMEOUT:加入頻道逾時

  • ERR_JOIN_BAD_PARAM:加入頻道參數錯誤

  • ERR_JOIN_FAILED:加入頻道失敗

  • ERR_JOIN_CONFIG_INVALID:入會參數無效,如空token

channel

const char *

加入的頻道ID。

userId

const char *

加入的使用者ID。

elapsed

int

加入頻道耗時。

OnLeaveChannelResult

離開頻道結果回調。調用LeaveChannel介面後返回,如果調用後直接調用Destroy,將不會收到此回調。

virtual void OnLeaveChannelResult(int result, AliEngineStats stats) {}

觸發條件

當應用成功調用LeaveChannel離會時會觸發此回調返回離會的結果和本次頻道會話的統計資訊。

說明

如果LeaveChannel後直接調用Destroy銷毀引擎則不會觸發此回調。

參數說明

參數

類型

描述

result

int

離開頻道結果,成功返回0,失敗返回錯誤碼。

stats

AliEngineStats

本次頻道內會話的資料統計匯總。

OnRemoteUserOffLineNotify

遠端使用者下線時的回調。

virtual void OnRemoteUserOffLineNotify(const char *uid, AliEngineUserOfflineReason reason) {}

該回調用於通知本機使用者,遠端使用者因各種原因離開頻道。當遠端使用者離線,該介面將被觸發。

觸發條件

  • 當遠端使用者角色主動離開頻道時,觸發回調。

  • 當遠端主播調用SetClientRole切換為觀眾角色(設定為 AliEngineClientRoleLive)時,觸發回調。

  • 當長時間未收到遠端主播資料並認為其掉線時,觸發回調。

參數說明

參數

類型

描述

uid

const char *

使用者ID從App server分配的唯一標示符。

reason

AliEngineUserOfflineReason

使用者離線的原因。

OnRemoteUserOnLineNotify

遠端使用者上線時的回調。

virtual void OnRemoteUserOnLineNotify(const char *uid, int elapsed) {}

該介面用於通知本地用戶端遠端使用者加入頻道。

觸發條件

  • 遠端使用者成功加入頻道。

  • 目前使用者加入頻道後,會收到頻道中已有使用者的加入回調,用於顯示之前已加入的使用者。

參數說明

參數

類型

描述

uid

const char *

使用者ID從App server分配的唯一標示符。

elapsed

int

使用者加入頻道時的耗時。

OnRemoteTrackAvailableNotify

遠端使用者的流發生變化時回調。

virtual void OnRemoteTrackAvailableNotify(const char *uid,
                                                  AliEngineAudioTrack audioTrack,
                                                  AliEngineVideoTrack videoTrack) {}

當前回調在遠端使用者推流狀態發生變化時觸發,通過這個回調,開發人員可以即時瞭解遠端使用者是否推送音頻和視頻流,並據此在介面上顯示或隱藏遠端使用者的音視頻資訊。

觸發條件

該回調在以下情境會被觸發:

  • 當遠端使用者從未推流變更為推流(包括音頻和視頻)

  • 當遠端使用者從已推流變更為未推流(包括音頻和視頻)

  • 互動模式下,遠端使用者調用 SetClientRole 從觀眾切換為主播角色,同時設定了推流時,會觸發該回調

以視頻為例,假設遠端使用者佈建不推流,那麼不會觸發此回調:

  • 遠端使用者開始推送相機流(推流狀態:不推視頻流->僅推相機流),則本端回調返回AliEngineVideoTrackCamera表示遠端使用者相機流可用。

  • 遠端使用者又推送了螢幕畫面分享流(推流狀態:僅推相機流->推送相機流和螢幕畫面分享流),則本端回調AliEngineVideoTrackBoth表示遠端使用者相機流和螢幕畫面分享流均可用。

  • 遠端使用者停止推送相機流僅保留螢幕畫面分享流(推流狀態:推送相機流和螢幕畫面分享流->僅推送螢幕畫面分享流),則本端回調AliEngineVideoTrackScreen表示當前僅有螢幕畫面分享流可用。

  • 遠端使用者又停止了螢幕畫面分享流的推送(推流狀態:僅推送螢幕畫面分享流->不推視頻流),則本端回調AliEngineVideoTrackNo表示當前無視頻流可用。

說明

該回調返回遠端使用者推流情況,如果需要知道本次變化哪一路流下線,請記錄回調前後的狀態變化。

參數說明

參數

類型

描述

uid

const char *

使用者ID從App server分配的唯一標示符。

audioTrack

AliEngineAudioTrack

遠端使用者發生變化後的音頻流。

videoTrack

AliEngineVideoTrack

遠端使用者發生變化後的視頻流。

OnBye

被伺服器踢出或者頻道關閉時回調。

virtual void OnBye(int code) {}

當使用者因某種原因被斷開或者會議結束,此回調便會被觸發,開發人員可以根據回調參數 code 來得知被斷開的原因並作出相應處理。

觸發條件

  • 目前使用者被伺服器踢出。

  • 會議結束(伺服器主動移除頻道)。

  • 被動離開,需要用戶端嘗試恢複會話或重新串連。

參數說明

參數

類型

描述

code

int

訊息類型。取值:

  • 1:被伺服器踢出。

  • 2:頻道關閉。

  • 3:同一個使用者ID在其他端登入,被伺服器踢出。

OnAudioPublishStateChanged

音頻推流變更回調。

virtual void OnAudioPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

該回調用於監聽本機使用者音頻流推流狀態變化。

觸發條件

當使用者的音頻推流狀態發生變化時,例如:

參數說明

參數

類型

描述

oldState

AliEnginePublishState

之前的推流狀態。

newStat

AliEnginePublishState

當前的推流狀態。

elapseSinceLastState

int

狀態變更時間間隔,單位:毫秒。

channel

const char *

目前通道ID。

OnAudioSubscribeStateChanged

音頻訂閱情況變更回調。

virtual void OnAudioSubscribeStateChanged(const char *uid,
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

該回調用於通知本機使用者遠端使用者音頻流訂閱狀態發生變化。通過該回調,可以獲知某個遠端使用者相機流的訂閱狀態變化,以及從上一狀態到目前狀態的時間間隔。

參數說明

參數

類型

描述

uid

NSString *_Nonnull

訂閱情況變更的使用者ID。

oldState

AliEngineSubscribeState

之前的訂閱狀態。

newState

AliEngineSubscribeState

當前的訂閱狀態。

elapseSinceLastState

int

狀態變更時間間隔,單位:毫秒。

channel

const char *

目前通道ID。

OnUserAudioMuted

使用者muteAudio通知。

virtual void OnUserAudioMuted(const char* uid, bool isMute) {}

參數說明

參數

類型

描述

uid

const char*

執行MuteAudio的使用者ID。

isMute

bool

true表示靜音,false表示未靜音。

OnUserAudioInterruptedBegin

使用者audio被中斷通知(一般使用者打電話等音頻被搶佔情境)。

virtual void OnUserAudioInterruptedBegin(const char* uid) {}

參數說明

參數

類型

描述

uid

const char*

audio被中斷的使用者ID。

OnUserAudioInterruptedEnded

使用者audio中斷結束通知(對應OnUserAudioInterruptedBegin)。

virtual void OnUserAudioInterruptedEnded(const char* uid) {}

參數說明

參數

類型

描述

uid

const char*

audio中斷結束的使用者ID。

OnVideoPublishStateChanged

視頻推流變更回調。

virtual void OnVideoPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

該回調用於監聽本機使用者視頻推流狀態的變化。

參數說明

參數

類型

描述

oldState

AliEnginePublishState

之前的推流狀態。

newState

AliEnginePublishState

當前的推流狀態。

elapseSinceLastState

int

狀態變更時間間隔,單位:毫秒。

channel

const char *

目前通道ID。

OnVideoSubscribeStateChanged

相機流訂閱情況變更回調。

virtual void OnVideoSubscribeStateChanged(const char *uid, 
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

該回調用於通知本機使用者遠端使用者相機流訂閱狀態發生變化。通過該回調,可以獲知某個遠端使用者相機流的訂閱狀態變化,以及從上一狀態到目前狀態的時間間隔。

相關回調

視頻流主要包含相機流和螢幕畫面分享流,本介面為相機流的訂閱狀態變化,螢幕畫面分享流的相關回道介面為OnScreenShareSubscribeStateChanged

參數說明

參數

類型

描述

uid

const char *

訂閱情況變更的使用者ID。

oldState

AliEngineSubscribeState

之前的訂閱狀態。

newState

AliEngineSubscribeState

當前的訂閱狀態。

elapseSinceLastState

int

狀態變更時間間隔,單位:毫秒。

channel

const char *

目前通道ID。

OnUserVideoMuted

使用者MuteVideo通知。

virtual void OnUserVideoMuted(const char* uid, bool isMute) {}

參數說明

參數

類型

描述

uid

const char*

執行muteVideo的使用者ID。

isMute

bool

true表示推流黑幀,false表示正常推流。

OnUserVideoEnabled

禁用或重新啟用本地視頻採集的通知。

virtual void OnUserVideoEnabled(const char* uid, bool isEnable) {}

參數說明

參數

類型

描述

uid

const char*

執行EnableLocalVideo的使用者ID。

isMute

bool

true表示開啟相機流採集,false表示關閉相機流採集。

OnUserWillResignActive

遠端使用者應用退到背景回調。

virtual void OnUserWillResignActive(const char* uid) {}

參數說明

參數

類型

描述

uid

const char*

應用退到背景使用者ID。

OnUserWillBecomeActive

遠端使用者應用返回前台的回調。

virtual void OnUserWillBecomeActive(const char* uid) {}

參數說明

參數

類型

描述

uid

const char*

應用返回前台的使用者ID。

OnStats

即時資料回調(2s觸發一次)。

virtual void OnStats(const AliEngineStats& stats) {}

參數說明

參數

類型

描述

stats

AliEngineStats

資料回調。

OnLocalVideoStats

本地視頻統計資訊(2s 觸發一次)。

virtual void OnLocalVideoStats(const AliEngineLocalVideoStats& localVideoStats);

參數資訊

參數

類型

描述

localVideoStats

const AliEngineLocalVideoStats&

本地視頻統計資訊,包含位元速率、幀率、碼率等資訊。

OnRemoteVideoStats

遠端視頻統計資訊(2s 觸發一次)。

virtual void OnRemoteVideoStats(const AliEngineRemoteVideoStats& remoteVideoStats);

參數資訊

參數

類型

描述

remoteVideoStats

const AliEngineRemoteVideoStats&

遠端視頻統計資訊,包含遠端使用者識別碼、幀率、卡頓等資訊。

OnLocalAudioStats

本地音頻統計資訊(2s 觸發一次)。

virtual void OnLocalAudioStats(const AliEngineLocalAudioStats& localAudioStats);

參數資訊

參數

類型

描述

localAudioStats

const AliEngineLocalAudioStats&

本地音頻統計資訊,包含採樣率、聲道數等。

OnRemoteAudioStats

遠端音頻統計資訊(2s 觸發一次)。

virtual void OnRemoteAudioStats(const AliEngineRemoteAudioStats& remoteAudioStats);

參數資訊

參數

類型

描述

remoteAudioStats

const AliEngineRemoteAudioStats&

遠端音頻統計資訊,包含丟包率、卡頓率等。

OnMediaExtensionMsgReceived

收到媒體擴充資訊回調。當一端通過SendMediaExtensionMsg發送資訊後,其他端通過該回調接收資料。

virtual void OnMediaExtensionMsgReceived(const char* uid, const uint8_t payloadType, const int8_t * message, uint32_t size);

當一端通過 sendMediaExtensionMsg發送資訊後,其他端通過該回調接收資料。

參數說明

參數

類型

描述

uid

const char*

發送使用者userId。

payloadType

const uint8_t

payload類型,sendMediaExtensionMsg返回5,sendMediaExtensionMsgEx發送的會返回具體類型。

message

const int8_t *

擴充資訊內容。

size

uint32_t

擴充資訊長度。

OnSnapshotComplete

截圖結果回調,當使用者成功調用了SnapshotVideo 後通過此回調返回截圖結果。

virtual void OnSnapshotComplete(const char* userId, AliEngineVideoTrack videoTrack, void* buffer, int width, int height, bool success);

參數說明

參數

類型

描述

userId

const char*

使用者識別碼,表示截的是哪個使用者的視頻流。

videoTrack

AliEngineVideoTrack

截圖視頻的類型,例如相機流、螢幕畫面分享流。

buffer

void*

成功則返回截圖的映像資料,映像格式為RGBA;失敗則返回 nullptr。

width

int

截圖寬度。

height

int

截圖高度。

success

bool

截圖是否成功。

  • true:截圖成功。

  • false:截圖失敗。

OnLocalAudioStateChange

本地音訊裝置狀態回調。

virtual void OnLocalAudioStateChange(AliEngineLocalAudioStateType state, const char* msg);

參數說明

參數

類型

描述

state

AliEngineLocalAudioStateType

當前音訊裝置的狀態,例如啟動中、已啟動等。

msg

const char*

裝置狀態變化的描述資訊。

onLocalVideoStateChanged

本地視頻裝置狀態回調。

virtual void onLocalVideoStateChanged(AliEngineLocalVideoStateType state, const char* msg);

參數說明

參數

類型

描述

state

AliEngineLocalVideoStateType

當前視頻裝置的狀態,例如啟動中、已啟動等。

msg

const char*

裝置狀態變化的描述資訊。

OnRemoteUserSubscribedDataChannel

可以開始發送data channel訊息回調。

virtual void OnRemoteUserSubscribedDataChannel(const char* uid);

當前介面是當遠端使用者訂閱了 Data Channel 時觸發的回調。此回調通知本機使用者,當前指定的遠端使用者已準備好接收自訂訊息,開發人員可以在此時安全地調用 SendDataChannelMessage 向其發送資料。該回調是確保訊息可靠傳遞的關鍵機制,避免在目標使用者未訂閱 Data Channel 時發送訊息導致丟包或失敗。

說明

該回調僅在AI情境下觸發。

參數說明

參數

類型

描述

uid

const char*

遠端使用者識別碼。

OnDataChannelMessage

data channel 訊息回調。

virtual void OnDataChannelMessage(const char* uid, const AliEngineDataChannelMsg& msg);

ARTC SDK提供發送和接收自訂訊息的能力,允許在傳輸音視頻資料的同時再發送自訂的即時訊息資料。該回調用於接收 data channel 自訂訊息。具體使用方式請參考自訂訊息發送和接收

說明
  • 互動情境中,主播角色可以發送和接收訊息,而觀眾角色僅支援接收訊息。

  • 該功能預設關閉,如需開啟請在建立引擎後調用SetParameter設定{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}

觸發時機

發送方調用SendDataChannelMessage 發送自訂訊息後,如果接收方開啟了 data channel 功能,則接收方會觸發此回調。

參數說明

參數

類型

描述

uid

const char*

發送使用者識別碼。

msg

const AliEngineDataChannelMsg&

data channel 訊息。

OnCapturedAudioFrame

音頻採集裸資料回調。

virtual bool OnCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

當前回調用於擷取當前裝置採集的原始音頻資料。預設關閉,為了擷取該音頻資料:

  • 通過 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource開啟當前回調。此外,config 參數可以設定擷取音頻資料的採樣率和聲道數、讀寫入模式等。

  • 調用 RegisterAudioFrameObserver 註冊音頻資料接收對象。

說明

本介面支援設定採樣率、聲道數及讀寫入模式。

參數說明

參數

類型

描述

audioRawData

AliEngineAudioRawData

音頻資料。

返回說明

  • true:成功。

  • false:失敗。

OnProcessCapturedAudioFrame

3A後資料回調。

virtual bool OnProcessCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

當前回調用於擷取經過 3A 處理後的音頻資料。預設關閉,為了擷取該音頻資料:

  • 通過 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource開啟當前回調。此外,config 參數可以設定擷取音頻資料的採樣率和聲道數、讀寫入模式等。

  • 調用 RegisterAudioFrameObserver 註冊音頻資料接收對象。

說明

本介面支援設定採樣率、聲道數及讀寫入模式。

參數說明

參數

類型

描述

audioRawData

AliEngineAudioRawData

音頻資料。

返回說明

  • true:成功。

  • false:失敗。

OnPublishAudioFrame

推流資料回調。

virtual bool OnPublishAudioFrame(AliEngineAudioRawData audioRawData) = 0;

當前回調用於擷取推流的音頻資料。預設關閉,為了擷取該音頻資料:

  • 通過 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource開啟當前回調。此外,config 參數可以設定擷取音頻資料的採樣率和聲道數、讀寫入模式等。

  • 調用 RegisterAudioFrameObserver 註冊音頻資料接收對象。

說明

本介面支援設定採樣率、聲道數,但只能設定為唯讀模式。

參數說明

參數

類型

描述

audioRawData

AliEngineAudioRawData

音頻資料。

返回說明

  • true:成功。

  • false:失敗。

OnPlaybackAudioFrame

播放資料回調。

virtual bool OnPlaybackAudioFrame(AliEngineAudioRawData audioRawData) = 0;

當前回調用於擷取播放的音頻資料。預設關閉,為了擷取該音頻資料:

  • 通過 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource開啟當前回調。此外,config 參數可以設定擷取音頻資料的採樣率和聲道數、讀寫入模式等。

  • 調用 RegisterAudioFrameObserver 註冊音頻資料接收對象。

說明

本介面支援設定採樣率、聲道數及讀寫入模式。

調用限制

請不要在此回呼函數中做任何耗時操作,否則可能導致聲音異常。

參數說明

參數

類型

描述

audioRawData

AliEngineAudioRawData

音頻資料。

返回說明

  • true:成功。

  • false:失敗。

OnRemoteUserAudioFrame

遠端拉流資料回調。

virtual bool OnRemoteUserAudioFrame(const char *uid, AliEngineAudioRawData audioRawData) = 0; 

當前回調用於擷取拉取的指定使用者的遠端音頻資料。預設關閉,為了擷取該音頻資料:

  • 通過 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource開啟當前回調。此外,config 參數可以設定擷取音頻資料的採樣率和聲道數、讀寫入模式等。

  • 調用 RegisterAudioFrameObserver 註冊音頻資料接收對象。

說明

本介面不支援設定採樣率、聲道數,但可以設定讀寫入模式。

調用限制

請不要在此回呼函數中做任何耗時操作,否則可能導致聲音異常。

參數說明

參數

類型

描述

uid

const char *

遠端使用者識別碼。

audioRawData

AliEngineAudioRawData

音頻資料。

返回說明

  • true:成功。

  • false:失敗。

OnCaptureVideoSample

本地採集視頻資料回調。

virtual bool OnCaptureVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

當前介面是擷取本地視頻採集資料的回調,用於擷取本地網路攝影機採集的原始視訊框架(如 YUV 資料)。開發人員可通過此回調實現自訂視頻處理邏輯(如添加濾鏡、浮水印、轉碼等),並決定是否將處理後的資料返回給 SDK 用於後續編碼或渲染。如果你需要將處理後的視頻發送給 SDK,請返回 true。

觸發時機

成功調用RegisterVideoSampleObserver註冊視頻資料觀測器後,當 SDK 捕獲到對應視訊框架。

參數說明

參數

類型

描述

videoSource

AliEngineVideoSource

視頻資料來源。

videoRawData

AliEngineVideoRawData

視頻裸資料。

返回說明

  • true: 需要寫回SDK(只對I420和native(ios/mac)有效)。

  • false: 不需要寫回SDK。

OnPreEncodeVideoSample

本地編碼前視頻資料回調。

virtual bool OnPreEncodeVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

當前介面是擷取本地視頻編碼前資料的回調,用於在 SDK 對視訊框架進行編碼前擷取原始視頻資料(如 YUV 格式)。開發人員可通過此回調實現自訂處理邏輯(如添加浮水印、調整色彩、轉碼等),並決定是否將處理後的資料返回給 SDK 用於後續編碼。

參數說明

參數

類型

描述

videoSource

AliEngineVideoSource

視頻資料來源。

videoRawData

AliEngineVideoRawData

視頻資料。

返回說明

  • true: 需要寫回SDK(只對I420和native(ios/mac)有效)。

  • false: 不需要寫回SDK。

OnRemoteVideoSample

訂閱的遠端視頻資料回調。

virtual bool OnRemoteVideoSample(const char *uid, AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

當前介面是擷取訂閱的遠端視頻資料的回調,用於擷取遠端使用者的原始視訊框架資料(如 YUV 格式),開發人員可通過此回調實現自訂處理邏輯(如添加濾鏡、浮水印、轉碼等),並決定是否將處理後的資料返回給 SDK 用於後續渲染。

參數說明

參數

類型

描述

uid

const char *

遠端使用者識別碼。

videoSource

AliEngineVideoSource

視頻資料來源。

videoRawData

AliEngineVideoRawData

視頻裸資料。

返回說明

  • true: 需要寫回SDK。

  • false: 不需要寫回SDK。

GetVideoAlignment

視頻輸出寬度對齊。

virtual AliEngineVideoObserAlignment GetVideoAlignment();

返回說明

期望視頻輸出寬度對齊, 參考AliEngineVideoObserAlignment

GetObservedFramePosition

視頻資料輸出內容。

virtual uint32_t GetObservedFramePosition();

返回說明

期望視頻輸出內容,參考AliEngineVideoObserPosition

onDestroyCompletion

銷毀完成回調。

virtual void onDestroyCompletion();

此回調錶明sdk 引擎執行個體銷毀完成,可以進行新一次的建立。

觸發時機

當使用者調用Destroy後,引擎銷毀完成後觸發此回調。

說明

等待onDestroyCompletion回調之後才能執行其他方法,為避免主線程阻塞。

OnAudioEffectFinished

本地音效播放結束回調。

virtual void OnAudioEffectFinished(int soundId) {}

參數

類型

描述

soundId

int

播放完成的音效的ID。

OnAudioVolumeCallback

訂閱的音頻音量、語音狀態和UID的回調。

virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume) {}

該回調預設禁用,可通過調用EnableAudioVolumeIndication介面開啟。開啟後,只要頻道內有推流的使用者,SDK 會在加入頻道後按照EnableAudioVolumeIndication設定的時間間隔觸發本回調,回調結果包含本地和遠端說話人音量資訊。

參數說明

參數

類型

描述

volumeInfo

AliEngineUserVolumeInfo*

表示回調使用者音量資訊數組,包含使用者UID、語音狀態以及音量。

  • UID為0表示本地說話人。

  • UID為1時表示所有遠端使用者的混音音量。

  • 其他值表示指定uid的遠端使用者的音量資訊。

volumeInfoCount

int

表示回調使用者音量資訊數組中資訊個數

totalVolume

int

混音後的總音量,範圍[0,255]。在本機使用者的回調中,totalVolume為本機使用者混音後的音量;在遠端使用者的回調中,totalVolume為所有說話者混音後的總音量。

OnActiveSpeaker

當前正在說話的人的回調。

virtual void OnActiveSpeaker(const char *uid) {}

成功調用 EnableAudioVolumeIndication 後,SDK 會持續監測音量最大的遠端使用者,並統計該使用者被判斷為音量最大者的次數。目前時間段內,該次數累積最多的遠端使用者為最活躍的使用者。

觸發條件

當頻道內使用者數量大於或等於 2 且有遠端活躍使用者時,SDK 會觸發該回調並報告遠端最活躍使用者的 uid。

  • 如果遠端最活躍使用者一直是同一位使用者,則 SDK 不會再次觸發 OnActiveSpeaker 回調。

  • 如果遠端最活躍使用者有變化,則 SDK 會再次觸發該回調並報告新的遠端最活躍使用者的 uid。

參數說明

參數

類型

描述

uid

const char *

當前正在說話的人的ID。

OnPublishLiveStreamStateChanged

旁路推流狀態改變回調。

virtual void OnPublishLiveStreamStateChanged(const char* streamUrl ,AliEngineLiveTranscodingState state ,AliEngineLiveTranscodingErrorCode errCode){};

參數說明

參數

類型

描述

streamURL

const char*

流地址。

state

AliEngineLiveTranscodingState

狀態。

errCode

AliEngineLiveTranscodingErrorCode

錯誤碼。

OnPublishTaskStateChanged

旁路任務狀態改變回調。

virtual void OnPublishTaskStateChanged(const char* streamUrl, AliEngineTrascodingPublishTaskStatus state){};

參數說明

參數

類型

描述

streamURL

const char*

流地址。

state

AliEngineTrascodingPublishTaskStatus

狀態。

OnNetworkQualityChanged

網路品質變化回調。當網路品質發生變化時觸發。

virtual void OnNetworkQualityChanged(const char *uid, AliEngineNetworkQuality upQuality, AliEngineNetworkQuality downQuality);

參數說明

參數

類型

描述

uid

char*

網路品質發生變化的使用者uid。

說明

uid為空白時代表使用者自己的網路品質發生變化。

upQuality

AliEngineNetworkQuality

上行網路品質等級。

downQuality

AliEngineNetworkQuality

下行網路品質等級。

OnLastmileDetectResultWithQuality

通話前網路品質探測的回調,開始探測3s左右提供該回調。

virtual void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality);

該回調描述本機使用者加入頻道前的網路探測結果,用於粗略判斷網路品質等級。調用StartLastmileDetect 後,SDK 會在大約 3s 左右返回該回調。

參數說明

參數

類型

描述

networkQuality

AliEngineNetworkQuality

網路品質等級。

OnLastmileDetectResultWithBandWidth

通話前網路品質探測的結果回調,探測30s左右提供該回調。

virtual void OnLastmileDetectResultWithBandWidth(int code, AliRTCSdk::AliEngineNetworkProbeResult networkQuality);

調用StartLastmileDetect 後,SDK 會在大約 30s 左右返回該回調,給出網路品質的詳細結果。

參數說明

參數

類型

描述

code

int

傳回值:

  • 0: 探測成功。

  • -1: 探測失敗。

networkQuality

AliRTCSdk::AliEngineNetworkProbeResult

網路探測結果,包含鏈路 RTT 和上下行網路的丟包率、抖動、頻寬。

OnOccurError

如果engine出現error,通過這個回調通知app。

virtual void OnOccurError(int error, const char *msg);

參數說明

參數

類型

描述

error

int

錯誤類型,參考AliEngineErrorCode

msg

const char *

錯誤描述。

OnFirstAudioPacketSend

音頻首包發送回調。在首個音頻資料包發送出去時觸發此回調。

virtual void OnFirstAudioPacketSend(AliEngineAudioTrack audioTrack, int timeCost);

參數說明

參數

類型

描述

audioTrack

AliEngineAudioTrack

音訊類型,表示是哪一路的音頻流首包發送。

timeCost

int

發送耗時,從入會開始到音頻首包發送出去的耗時(單位:毫秒)。

OnFirstAudioPacketReceived

音頻首包接收回調,在接收到遠端首個音頻資料包時觸發此回調。

virtual void OnFirstAudioPacketReceived(const char* uid, AliEngineAudioTrack audioTrack, int timeCost) 

參數說明

參數

類型

描述

uid

const char*

遠端使用者ID。

audioTrack

AliEngineAudioTrack

音訊類型,表示是哪一路的音頻流首包被接收到。

timeCost

int

接收耗時,從入會開始到音頻首包被接收到的耗時(單位:毫秒)。

OnFirstVideoPacketSend

視頻首包發送回調。

virtual void OnFirstVideoPacketSend(AliEngineVideoTrack videoTrack, int timeCost);

參數說明

參數

類型

描述

videoTrack

AliEngineVideoTrack

視頻類型,表示哪一路視頻流的首包發送了,例如相機流、螢幕畫面分享流。

timeCost

int

發送耗時,從入會開始到視頻首包發送出去的耗時(單位:毫秒)。

OnFirstVideoPacketReceived

視頻首包接收回調。

virtual void OnFirstVideoPacketReceived(const char* uid, AliEngineVideoTrack videoTrack, int timeCost);

參數說明

參數

類型

描述

uid

const char*

遠端使用者ID。

videoTrack

AliEngineVideoTrack

視頻類型,表示哪一路視頻流的首包被接收了,例如相機流、螢幕畫面分享流。

timeCost

int

接收耗時,從入會開始到視頻首包被接收的耗時(單位:毫秒)。

OnFirstRemoteAudioDecoded

已解碼遠端音頻首幀回調。

virtual void OnFirstRemoteAudioDecoded(const char* uid, AliEngineAudioTrack audioTrack, int elapsed);

參數說明

參數

類型

描述

uid

const char*

遠端使用者ID。

audioTrack

AliEngineAudioTrack

音訊類型,表示哪一路音頻流完成解碼首幀。

elapsed

int

從本機使用者加入頻道直至該回調觸發的延遲, 單位為毫秒。

OnFirstRemoteVideoFrameDrawn

遠端使用者的第一幀視訊框架顯示時觸發這個訊息。

virtual void OnFirstRemoteVideoFrameDrawn(const char *uid, AliEngineVideoTrack videoTrack,
                                                  int width, int height, int elapsed);

參數說明

參數

類型

描述

uid

const char*

遠端使用者ID。

videoTrack

AliEngineVideoTrack

視頻類型,表示哪一路視頻流,例如相機流、螢幕畫面分享流。

width

int

視頻寬度。

height

int

視頻高度。

elapsed

int

本機使用者加入頻道直至該回調觸發的延遲總耗時(毫秒)。

OnFirstLocalVideoFrameDrawn

預覽開始顯示第一幀視訊框架時觸發這個訊息。

virtual void OnFirstLocalVideoFrameDrawn(int width, int height, int elapsed);

參數說明

參數

類型

描述

width

int

視頻寬度。

height

int

視頻高度。

elapsed

int

本機使用者加入頻道直至該回調觸發的延遲總耗時(毫秒)。

OnTestAudioVolumeCallback

通話前音頻採集檢測的音量回調。

virtual void OnTestAudioVolumeCallback(int volumn);

通話前成功調用StartAudioCaptureTest 後觸發此回調,如果可以返回正常的音量則表示音頻採集正常。

參數說明

參數

類型

描述

volumn

int

返迴音量資訊。

OnAudioAccompanyStateChanged

本地伴奏播放狀態回調。

virtual void OnAudioAccompanyStateChanged(AliEngineAudioAccompanyStateCode playState, AliEngineAudioAccompanyErrorCode errorCode);

該回調在伴奏播放狀態發生改變時觸發,並通知當前的播放狀態和錯誤碼。

參數說明

參數

類型

描述

playState

AliEngineAudioAccompanyStateCode

當前播放狀態。

errorCode

AliEngineAudioAccompanyErrorCode

播放錯誤碼。

OnAudioFileInfo

音頻檔案資訊回調。

virtual void OnAudioFileInfo(AliEngineAudioFileInfo info, AliEngineAudioAccompanyErrorCode errorCode);

該回調在調用GetAudioFileInfo後觸發,返回當前音頻檔案資訊和錯誤碼。

參數說明

參數

類型

描述

info

AliEngineAudioFileInfo

音頻檔案資訊。

errorCode

AliEngineAudioAccompanyErrorCode

錯誤碼。

OnRemoteAudioAccompanyStarted

遠端使用者伴奏播放開始回調。

virtual void OnRemoteAudioAccompanyStarted(const char* uid);

參數說明

參數

類型

描述

uid

const char*

遠端使用者識別碼。

OnRemoteAudioAccompanyFinished

遠端使用者伴奏播放結束回調。

virtual void OnRemoteAudioAccompanyFinished(const char* uid);

參數說明

參數

類型

描述

uid

const char*

遠端使用者識別碼。

SetParameter

設定自訂參數 。

virtual int SetParameter(const char* parameter) = 0;

參數說明

參數

類型

描述

param

const char*

自訂參數。

GetParameter

擷取自訂參數。

virtual String GetParameter(const char* parameter) = 0;

參數說明

參數

類型

描述

parameter

const char*

自訂參數。

EnableAudioFrameObserver

啟用/取消訂閱音頻資料

virtual int EnableAudioFrameObserver(bool enabled, AliEngineAudioSource audioSource, AliEngineAudioFrameObserverConfig config) = 0;

該介面用於開啟或關閉指定類型音頻資料回調,允許開發人員擷取各類原始音頻資料和已編碼的音頻資料,預設是關閉的,如果需要開啟,請調用此介面。

說明

調用此介面開啟對應AliEngineAudioSource的音頻資料回調時,需要結合 RegisterAudioFrameObserver 方法傳入音頻資料的接收對象。

調用時機

需要擷取音頻資料時,可以調用此介面開啟。

參數說明

參數

類型

描述

enable

bool

是否允許資料回調。

audioSource

AliEngineAudioSource

回調資料來源類型,包含採集後(0)、3A 後(1)、推流(2)、播放(3)、拉流的音頻資料(5)。

注意:

  • 推流的音頻資料和推流播放混音後的音頻資料僅支援唯讀(ReadOnly)模式

  • 拉流的音頻資料不支援修改採樣率、通道數等音頻參數。

config

AliEngineAudioFrameObserverConfig

音頻回調參數設定,包含採樣率、聲道數、回調讀寫入模式(唯讀、唯寫、讀寫)等。參數為 null 時預設為(48000,1, ReadOnly)。

RegisterAudioFrameObserver

註冊音頻資料回調。

virtual int RegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

該方法用於註冊音頻回調資料的接收對象。

調用時機

當使用者需要 SDK 觸發 OnCapturedAudioFrameOnProcessCapturedAudioFrameOnPublishAudioFrameOnPlaybackAudioFrameOnRemoteUserAudioFrame 回調來擷取各類音頻資料時,需要調用此方法提供一個音頻資料的接收對象。如果需要取消註冊,請再次調用並傳入 null。

調用限制

需要調用 EnableAudioFrameObserver開啟具體AliEngineAudioSource的回調,否則當前傳入的 oberver 無法擷取資料。

參數說明

參數

類型

描述

observer

IAudioFrameObserver*

回調callback對象指標

傳回值

0成功,其他失敗

UnRegisterAudioFrameObserver

取消訂閱音頻資料輸出(IAliEngineMediaEngine介面)。

virtual void UnRegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

參數說明

名稱

類型

描述

observer

IAudioFrameObserver

回調callback對象指標

RegisterVideoSampleObserver

訂閱視頻資料輸出。

virtual void RegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

該介面用於註冊視頻資料的輸出對象。如果要取消註冊,請調用UnRegisterVideoSampleObserver介面。

說明

輸出資料將通過 {@link IVideoFrameObserver} 回調返回

調用時機

如果你需要擷取原始音頻資料(如 YUV 或 RGBA 格式),可以調用此介面註冊一個視頻資料監測器來擷取各階段的視頻資料。

相關回調

成功註冊視頻資料輸出監測器後,SDK 會在捕捉到每個視訊框架時,觸發你實現的回調,請根據業務需要實現對應回調:

參數說明

名稱

類型

描述

observer

IVideoFrameObserver

回調callback對象指標

UnRegisterVideoSampleObserver

取消註冊視頻資料輸出。

virtual void UnRegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

此介面與RegisterVideoSampleObserver介面相對應,負責取消註冊視頻資料輸出對象。

參數說明

名稱

類型

描述

observer

IVideoFrameObserver

回調callback對象指標

SnapshotVideo

視頻截圖功能

virtual int SnapshotVideo(const String& userId, const AliEngineVideoTrack &trackType) = 0;

視頻截圖功能為非同步介面, 通過監聽AliEngineEventListener::OnSnapshotComplete回調擷取當前截圖畫面。

參數說明

參數

類型

描述

userId

const String&

使用者ID, userId 為""代表本機使用者。

trackType

const AliEngineVideoTrack&

視頻流類型,只支援AliEngineVideoTrackCamera和 AliEngineVideoTrackScreen。

返回說明

  • 0:介面調用成功,截圖畫面通過回調獲得。

  • <0:介面調用失敗。

SetLogDirPath

設定SDK記錄檔儲存路徑。

static int SetLogDirPath(const char *logDirPath);

參數說明

名稱

類型

描述

logDirPath

const char *

記錄檔儲存絕對路徑。

返回說明

0表示方法調用成功,其他表示方法調用失敗。

說明

請在調用所有SDK介面前調用此介面,避免日誌出現丟失,同時App必須保證指定的目錄已存在且可寫入。

SetLogLevel

設定日誌等級。

static void SetLogLevel(AliEngineLogLevel logLevel);

參數說明

名稱

類型

描述

logLevel

AliEngineLogLevel

Log層級,預設值為AliEngineLogInfo。

GetNetworkTime

擷取當前網路時間。

virtual long long GetNetworkTime() = 0;

返回說明

擷取當前經過位移調整的網路時間(NTP時間),以毫秒為單位。

SendDataChannelMessage

發送data channel 訊息。

virtual int SendDataChannelMessage(const AliEngineDataChannelMsg& msg) = 0;

ARTC SDK提供發送和接收自訂訊息的能力,允許在傳輸音視頻資料的同時再發送自訂的即時訊息資料,例如在音視頻傳輸的同時傳遞即時控制指令、狀態同步資料或其他業務訊息時可調用此介面實現。具體使用方式請參考自訂訊息發送和接收

說明
  • 自訂訊息通道預設關閉,如果需要使用該功能,請調用介面 SetParameter設定("{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}")介面開啟自訂訊息通道,加入頻道前後均可開啟。

  • 訊息可以是任意資料(例如文字、圖片等)。

相關回調

  • 當發送方成功開啟自訂訊息通道後,可以調用本介面發送自訂訊息,接收方通過監聽 OnDataChannelMessage 回調接收自訂的訊息。

調用限制

  • 主播角色可以發送和接收訊息,觀眾角色僅支援接收訊息。

  • 需要調用 SetParameter 開啟自訂訊息通道。

  • 發送資料有限制為:

    • 位元速率上限為 30 KB/s。

    • 資料通道每秒最多可發送 60 個資料包,每個資料包最大為 1 KB。

參數說明

名稱

類型

描述

msg

const AliEngineDataChannelMsg&

需要發送的訊息。

返回說明

  • 0:成功。

  • 非 0:失敗。

StartScreenShareByDesktopId

開始共用指定的案頭ID對應的螢幕流。

virtual int StartScreenShareByDesktopId(unsignedint desktopId, const AliEngineScreenShareConfig& config) = 0;

參數說明

名稱

類型

描述

desktopId

unsignedint

案頭ID。

config

AliEngineScreenShareConfig

共用案頭的配置。

傳回值

  • 0:成功

  • 其他:失敗

StartScreenShareByScreenRegion

開始共用螢幕指定地區的視頻流。

  • 本方法僅適用於桌面共用,設定視窗共用請使用StartScreenShareByWindowId介面。

  • 配置指定地區分享時,分享地區的最小解析度為16 x 16。如果設定的地區小於最小解析度,則將其重設為最小解析度。

  • 在配置指定地區分享時,如果設定的分享地區超出實際案頭解析度,則將分享整個案頭。

  • 關於虛擬螢幕座標請參考虛擬螢幕座標

virtual int StartScreenShareByScreenRegion(
const AliEngineScreenShareRegion & screenRegion, 
const AliEngineScreenShareConfig & config) = 0;

參數說明

名稱

類型

描述

screenRegion

AliEngineScreenShareRegion

指定要共用的螢幕相對於虛擬螢幕的位置。

config

AliEngineScreenShareConfig

螢幕畫面分享配置。

傳回值

  • 0:成功

  • 其他:失敗

StartScreenShareByWindowId

根據使用者指定的視窗ID,將其作為視頻源進行視頻流的共用與推送。

virtual int StartScreenShareByWindowId(unsigned int windowId, 
  const AliEngineScreenShareConfig & config) = 0;

參數說明

名稱

類型

描述

windowId

int

視窗ID。

config

AliEngineScreenShareConfig

螢幕畫面分享配置。

傳回值

  • 0:成功

  • 其他:失敗

StopScreenShare

停止螢幕畫面分享。

virtual int StopScreenShare() = 0 ;

傳回值

  • 0:成功

  • 其他:失敗

ResumeScreenShare

重新開始畫面共用。

virtual int ResumeScreenShare() = 0;

傳回值

  • 0:成功

  • 其他:失敗

PauseScreenShare

暫停螢幕畫面分享。

virtual int PauseScreenShare() = 0;

傳回值

  • 0:成功

  • 其他:失敗

IsScreenSharePublished

查詢是否已設定推送螢幕畫面分享。

說明

調用該方法可檢查當前是否已經設定推送螢幕畫面分享流。SDK預設設定不推送螢幕分享,如果需要推送螢幕畫面分享,可以通過StartScreenShareByDesktopIdStartScreenShareByScreenRegionStartScreenShareByWindowId介面主動開啟螢幕畫面分享。

virtual bool IsScreenSharePublished() = 0;

返回說明

  • true: 已設定推送。

  • false: 未設定推送。

UpdateScreenShareConfig

更新螢幕畫面分享配置。

virtual int UpdateScreenShareConfig(const AliEngineScreenShareConfig & config) = 0;

參數說明

參數

類型

描述

config

AliEngineScreenShareConfig

更新的螢幕畫面分享配置。

傳回值

  • 0:成功

  • 其他:失敗

CheckWindowSourceVaild

判斷共用的視窗ID對應的視窗是否有效。

virtual bool CheckWindowSourceVaild(unsigned int windowId) = 0;

參數說明

參數

類型

描述

int

unsigned int

視窗ID。

傳回值

  • true:對應的視窗ID有效果。

  • false:對應的視窗ID無效。

GetScreenShareConfig

返回當前螢幕畫面分享的配置資訊。

virtual AliEngineScreenShareConfig GetScreenShareConfig() = 0;

參數說明

參數

類型

描述

int

unsigned int

視窗ID。

傳回值

  • true:對應的視窗ID有效果。

  • false:對應的視窗ID無效。

GetScreenShareSourceInfo

根據指定的源擷取對象列表。

virtual AliEngineScreenSourceList* GetScreenShareSourceInfo(AliEngineScreenShareType sourceType) = 0;

參數說明

參數

類型

描述

sourceType

AliEngineScreenShareType

共用源類型。

傳回值

  • 非空AliEngineScreenSourceList對象所擷取的共用源類型列表對象。

  • NULL表示失敗。

GetCurrentScreenShareSourceId

擷取當前共用的螢幕畫面分享源ID。

virtual unsigned int GetCurrentScreenShareSourceId() = 0;

傳回值

  • >=0表示當前共用的螢幕源ID。

  • <0表示失敗。

GetCurrentScreenShareSourceType

根據指定的源擷取對象列表。

virtual AliEngineScreenShareType GetCurrentScreenShareSourceType() = 0;

參數說明

參數

類型

描述

sourceType

AliEngineScreenShareType

共用源類型。

傳回值

  • 非空的AliEngineScreenSourceList對象所擷取的共用源類型列表對象。

  • NULL表示失敗。

GetDesktopRegion

根據指定的源ID和源標題擷取桌面共用範圍。

virtual int GetDesktopRegion(const String& sourceId, const String& sourceTitle, AliEngineScreenShareRegion & region) = 0;

參數說明

參數

類型

描述

sourceId

String

共用源ID。

sourceTitle

String

源標題。

region

AliEngineScreenShareRegion

共用範圍。

傳回值

  • 0:成功

  • 其他:失敗

SetScreenShareEncoderConfiguration

設定螢幕流視頻編碼屬性。

virtual void SetScreenShareEncoderConfiguration(const AliEngineScreenShareEncoderConfiguration& config) = 0;

該方法用於設定螢幕流視頻編碼屬性對應的視頻參數,如解析度、幀率、碼率、視頻方向等所有設定的參數都有相應的範圍限制,如果設定的參數不在有效範圍內,SDK會自動調節。

該方法在入會前和入會後都可以調用,如果每次入會只需要設定一次螢幕流視頻編碼屬性,建議在入會前調用。

參數說明

參數

類型

描述

config

AliEngineScreenShareEncoderConfiguration

預定義的螢幕畫面分享編碼屬性。

所屬介面

IAliEngineMediaEngine