AliRtcEngine接口

本文介绍实时音视频Windows SDK接口详情。

目录

基础接口

API

功能描述

Create

创建AliRtcEngine实例。

destroy

销毁引擎。

SetH5CompatibleMode

设置H5兼容模式。

GetH5CompatibleMode

检查当前是否兼容H5。

频道相关接口

API

功能描述

SetChannelProfile

设置频道模式。

SetAudioProfile

设置音频Profile。

IsAudioOnlyMode

查询当前是否为纯音频模式。

SetAudioOnlyMode

设置为纯音频模式还是音视频模式。

JoinChannel[1/2]

加入频道。

JoinChannel[2/2]

加入频道。

LeaveChannel

离开频道。

IsInCall

检查当前是否在频道中

setClientRole

设置用户角色。

RefreshAuthInfo[1/2]

刷新鉴权信息。

RefreshAuthInfo[2/2]

刷新鉴权信息。

发布及订阅相关接口

API

功能描述

PublishLocalAudioStream

设置是否发布音频流,默认会推送音频流。

IsLocalAudioStreamPublished

查询当前是否推音频流。

SetDefaultSubscribeAllRemoteAudioStreams

设置是否默认接收音频流,默认会订阅所有远端音频流。

此接口建议入会前调用。

SetDefaultSubscribeAllRemoteAudioStreams

停止或恢复接收所有远端音频流。

SubscribeRemoteAudioStream

停止或恢复特定远端用户的音频流拉取。

PublishLocalVideoStream

设置是否发布视频流。

IsLocalVideoStreamPublished

查询当前是否发布视频流。

SetDefaultSubscribeAllRemoteVideoStreams

设置是否默认接收视频流,默认会订阅所有远端视频频流。

此接口建议入会前调用。

SetDefaultSubscribeAllRemoteVideoStreams

停止或恢复接收所有远端视频流。

SubscribeRemoteMediaStream

停止或恢复特定远端用户的媒体流。

建议在音视频都存在且需要控制时使用此接口。

SubscribeRemoteDestChannelStream

停止或恢复跨频道特定远端用户的媒体流。

音频设备管理相关接口

API

功能描述

MuteLocalMic

设置是否停止发布本地音频。

MuteRemoteAudio

设置是否停止播放远端音频流。

MuteAllRemoteAudio

停止或恢复远端所有的音频播放。

StartAudioCapture[2/2]

开启音频采集。

StopAudioCapture

关闭音频采集。

EnableAudioVolumeIndication

开启音量检测功能。

音频变声与混响

API

功能描述

SetAudioEffectVoiceChangerMode

设置变声音效模式。

SetAudioEffectPitchValue

设置变调参数。

SetAudioEffectReverbMode

设置混响音效模式。

SetAudioEffectReverbParamType

设置混响音效类型和具体参数。

自定义音频输入

API

功能描述

AddExternalAudioStream

增加外部音频流。

PushExternalAudioStreamRawData

输入外部音频流数据。

SetExternalAudioStreamPublishVolume

设置推流音量。

GetExternalAudioStreamPublishVolume

获取推流音量。

SetExternalAudioStreamPlayoutVolume

设置外部音频流播放音量。

GetExternalAudioStreamPlayoutVolume

获取外部音频流播放音量。

音效文件

API

功能描述

PreloadAudioEffect

预加载音效文件。

UnloadAudioEffect

删除预加载的音效文件。

PlayAudioEffect

开始播放音效。

StopAudioEffect

停止播放音效。

StopAllAudioEffects

停止播放所有音效。

PauseAudioEffect

暂停音效。

PauseAllAudioEffects

暂停所有音效。

ResumeAudioEffect

恢复指定音效文件。

ResumeAllAudioEffects

恢复所有音效文件。

SetAudioEffectPublishVolume

设置音效推流混音音量。

GetAudioEffectPublishVolume

获取音效推流混音音量。

SetAllAudioEffectsPublishVolume

设置所有音效推流混音音量。

SetAudioEffectPlayoutVolume

设置音效本地播放音量。

GetAudioEffectPlayoutVolume

获取音效本地播放音量。

SetAllAudioEffectsPlayoutVolume

设置所有音效本地播音量。

视频设备管理相关接口

API

功能描述

setLocalViewConfig

为本地预览设置渲染窗口以及绘制参数。

SetCameraCapturerConfiguration

设置摄像头采集偏好。

EnableLocalVideo

禁用或重新启用本地视频采集。

MuteLocalCamera

设置是否停止发布本地视频流。

SetRemoteViewConfig

为远端的视频设置渲染窗口以及绘制参数。

isCameraOn

检查摄像头是否打开。

SetVideoEncoderConfiguration

设置视频编码属性。

startPreview

开始本地预览。

StopPreview

停止本地预览。

自定义视频输入

API

功能描述

SetExternalVideoSource

启用外部视频输入源。

PushExternalVideoFrame

输入视频数据。

直播旁路接口

API

功能描述

StartPublishLiveStream

开启旁路直播。

UpdatePublishLiveStream

更新旁路直播相关参数。

StopPublishLiveStream

停止旁路直播。

GetPublishLiveStreamState

获取旁路直播状态。

回调事件

API

功能描述

OnConnectionStatusChange

网络链接状态回调;客户需要关心此回调。

OnLocalDeviceException

本地设备异常回调;客户需要关心此回调。

OnAuthInfoWillExpire

用户鉴权信息即将过期通知,收到后30秒鉴权过期;客户需要关心此回调。

OnAuthInfoExpired

用户调用需要鉴权的接口时,服务端返回信息过期。

OnJoinChannelResult[1/2]

加入频道结果回调。

OnJoinChannelResult[2/2]

加入频道结果回调。

OnLeaveChannelResult

离开频道结果回调。

OnRemoteUserOffLineNotify

远端用户离线通知。

OnRemoteUserOnLineNotify

远端用户上线通知。

OnRemoteTrackAvailableNotify

远端推流信息通知。

OnBye

被服务器踢出/会议结束频道的消息。

OnAudioPublishStateChanged

音频推流状态通知。

OnAudioSubscribeStateChanged

音频拉流状态通知。

OnUserAudioMuted

远端用户静音通知。

OnUserAudioInterruptedBegin

音频设备打断开始通知。

OnUserAudioInterruptedEnded

音频设备打断结束通知。

OnVideoPublishStateChanged

视频推流变更回调。

OnVideoSubscribeStateChanged

相机流订阅情况变更回调。

OnUserVideoMuted

对端用户发送视频黑帧数据发送通知。

OnUserVideoEnabled

对端用户关闭相机流采集发送通知。

OnUserWillResignActive

远端用户应用退到后台。

OnUserWillBecomeActive

远端用户应用返回前台。

OnStats

实时数据回调(2s触发一次)。

OnAudioEffectFinished

本地音效播放结束回调。

OnAudioVolumeCallback

订阅的音频音量,语音状态和uid。

OnActiveSpeaker

语音激励,监测到活跃用户回调。

OnPublishLiveStreamStateChanged

旁路推流状态改变回调。

OnPublishTaskStateChanged

旁路任务状态改变回调。

其他接口

API

功能描述

SetParameter

设置自定义参数。

GetParameter

获取自定义参数。

EnableAudioFrameObserver

设置音频回调参数。

RegisterAudioFrameObserver

注册音频数据回调。

registerVideoSampleObserver

注册视频数据输出对象。

unRegisterVideoSampleObserver

取消注册视频数据输出对象。

SetLogDirPath

设置SDK日志文件保存路径。

SetLogLevel

设置日志等级。

接口详情

Create

创建AliRtcEngine实例。

static AliEngine *Create(const char *extras);

参数说明

名称

类型

描述

extras

const char *

通过JSON配置SDK的特别功能,详情请参见extras参数配置说明

。无需特别功能,可填空字符:""。

说明

同一时间只会存在一个主实例。

destroy

释放SDK实例。

static void Destroy();
说明

在所有操作结束后调用。

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。

SetChannelProfile

设置频道模式。

virtual int SetChannelProfile(const AliEngineChannelProfile channelProfile) = 0;

参数说明

名称

类型

描述

profile

AliEngineChannelProfile

频道类型,默认为AliEngineCommunication。

说明

0表示方法调用成功,其他表示方法调用失败。该接口只可以在加入频道之前调用,会议中不可以重新设置,离开频道后可以重新设置。

SetAudioProfile

设置音频Profile。

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

参数说明

名称

类型

描述

audio_profile

AliEngineAudioProfile

音频采集或编码模式参数,默认值为AliEngineBasicQualityMode。

audio_scene

AliEngineAudioScenario

音频场景模式参数,默认值为AliEngineSceneDefaultMode。

返回说明

0表示方法调用成功,其他表示方法调用失败。

IsAudioOnlyMode

检查当前是否纯音频模式。

virtual bool IsAudioOnlyMode() = 0;

返回说明

YES表示纯音频模式,NO表示音视频模式。

SetAudioOnlyMode

设置为纯音频模式还是音视频模式。

virtual int SetAudioOnlyMode(bool audioOnly) = 0;

参数说明

名称

类型

描述

audioOnly

bool

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

  • false表示音视频都支持,默认值为false。

返回说明

0表示方法调用成功,其他表示方法调用失败。

JoinChannel[1/2]

加入频道。

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

加入频道成功后,如果中途需要加入其他频道,必须先调用LeaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用LeaveChannel。

参数说明

参数

类型

描述

token

const char *

单参数入会的鉴权信息。

channelId

const char *

入会频道,必须和产生Token的值一样。

userId

const char *

入会的userid,必须和产生token的值一样。

userName

const char *

用户的显示名称(不是用户ID)。

返回说明

0表示方法调用成功,非0表示方法调用失败。

说明

该接口是异步接口,是否成功加入频道,需要通过OnJoinChannelResult回调判断。

JoinChannel[2/2]

加入频道。

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

参数说明

名称

类型

描述

authInfo

const AliEngineAuthInfo

鉴权信息。

userName

const char *

用户的显示名称(不是用户ID)。

加入频道成功后,如果中途需要加入其他频道,必须先调用LeaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用LeaveChannel。

LeaveChannel

离开频道。

virtual int LeaveChannel() = 0;

返回说明

0表示方法调用成功,其他表示方法调用失败。

    说明

    1.15及以上版本:销毁引擎只能通过Destory方法。

    1.15以下版本:离开频道时,AliRtcEngine实例会被销毁,如需继续加入频道等操作,需要重新调用Create初始化AliRtcEngine实例。

    如果当前不在频道内,调用LeaveChannel不会对实例产生任何影响,但会产生消息,通知频道内其他用户。

IsInCall

检查当前是否在频道中。

virtual bool IsInCall() = 0;

返回说明

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

setClientRole

设置用户角色。

virtual int SetClientRole(const AliEngineClientRole clientRole) = 0;

参数说明

名称

类型

描述

role

AliEngineClientRole

用户角色类型,默认值为AliEngineClientRolelive(观众角色),非通信模式下角色类型才有效。

返回说明

0表示方法调用成功,其他表示方法调用失败。

RefreshAuthInfo[1/2]

刷新鉴权信息。

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

参数说明

名称

类型

描述

authInfo

AliEngineAuthInfo

鉴权信息。

返回说明

0表示方法调用成功,其他表示方法调用失败。

RefreshAuthInfo[2/2]

刷新鉴权信息。

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

参数说明

名称

类型

描述

token

const char *token

单参数入会的鉴权信息。

返回说明

0表示方法调用成功,其他表示方法调用失败。

PublishLocalAudioStream

设置是否允许发布音频流。

virtual int PublishLocalAudioStream(bool enabled) = 0;

参数说明

名称

类型

描述

enable

bool

  • true表示发送本地音频流。

  • false表示停止推流,默认false。

返回说明

0表示方法调用成功,其他表示方法调用失败。

IsLocalAudioStreamPublished

查询当前是否允许推音频流。

virtual bool IsLocalAudioStreamPublished() = 0;

返回说明

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

SetDefaultSubscribeAllRemoteAudioStreams

设置是否默认接收音频流。

virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;

参数说明

名称

类型

描述

sub

bool

  • true表示接收用户的音频流。

  • false表示停止接收用户的音频流,默认值为true。

返回说明

0表示方法调用成功,其他表示方法调用失败。

    说明

    入会前、后均可调用。如果在加入频道后调用SetDefaultSubscribeAllRemoteAudioStreams(false),会接收不到设置后加入频道的用户的音频流。

    停止接收音频流后,如果想要恢复接收,请调用SubscribeRemoteAudioStream(uid, true),并指定您想要接收的远端用户UID。

    如果想恢复接收多个用户的音频流,则需要多次调用SubscribeRemoteAudioStream。SetDefaultSubscribeAllRemoteAudioStreams(true)只能恢复接收后面加入频道的用户的音频流。

SubscribeAllRemoteAudioStreams

停止或恢复接收所有远端音频流。

virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;

参数说明

名称

类型

描述

sub

bool

  • true表示接收所有用户的音频流。

  • false表示停止接收所有用户的音频流,默认值为true。

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

该接口作为订阅远端音频流的总开关,如果设置为false,则不仅当前会议中所有远端音频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了SetDefaultSubscribeAllRemoteAudioStreams(true))。

SubscribeRemoteAudioStream

停止或恢复特定远端用户的音频流拉取。

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

参数说明

名称

类型

描述

uid

const char*

远端用户ID。

sub

bool

  • true表示接收指定用户的音频流。

  • false表示停止接收指定用户的音频流,默认值为true。

返回说明

0表示方法调用成功,其他表示方法调用失败。

    说明

    如果之前已经调用过SubscribeAllRemoteAudioStreams(false)对所有远端音频进行静音,在调用本API之前请确保您已调用SubscribeAllRemoteAudioStreams(true)

    SubscribeAllRemoteAudioStreams是全局控制,SubscribeRemoteAudioStream是精细控制。

PublishLocalVideoStream

设置是否允许发布相机流。

virtual int PublishLocalVideoStream(bool enabled) = 0;

参数说明

名称

类型

描述

enable

bool

  • true表示发送视频。

  • false表示停止发送,默认true。

IsLocalVideoStreamPublished

查询当前是否允许发布视频流。

virtual bool IsLocalVideoStreamPublished() = 0;

返回说明

true表示发布相机流,false表示不发布相机流。

SetDefaultSubscribeAllRemoteVideoStreams

设置是否默认接收视频流。

virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;

参数说明

名称

类型

描述

sub

bool

  • true表示接收用户的视频流。

  • false表示不接收用户的视频流,默认值为true。

返回说明

0表示方法调用成功,其他表示方法调用失败。

    说明

    入会前、后均可调用。如果在加入频道后调用SetDefaultSubscribeAllRemoteVideoStreams(false),会接收不到设置后加入频道的用户的视频流。

    停止接收视频流后,如果想要恢复接收,请调用SubscribeRemoteVideoStream(uid,track,true),并指定您想要接收的远端用户UID。

    如果想恢复接收多个用户的视频流,则需要多次调用SubscribeRemoteVideoStream,SetDefaultSubscribeAllRemoteVideoStreams(true) 只能恢复接收后面加入频道的用户的视频流。

SubscribeAllRemoteVideoStreams

停止或恢复接收所有远端视频流。

virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;

参数说明

名称

类型

描述

sub

bool

  • true表示接收所有用户的视频流。

  • false表示停止允许接收所有用户的视频流,默认值为true。

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

该接口作为订阅远端视频流的总开关,如果设置为false,则不仅当前会议中所有远端视频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了SetDefaultSubscribeAllRemoteVideoStreams(true))。

SubscribeRemoteMediaStream

停止或恢复特定远端用户的媒体流。

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

参数说明

参数

类型

描述

uid

const char*

远端用户ID。

videoTrack

AliEngineVideoTrack

视频流类型。

subVideo

boo

停止或恢复特定远端用户的视频流拉取,取值:

  • true(默认值):恢复。

  • false:停止。

subAudio

boo

停止或恢复特定远端用户的音频流拉取,取值:

  • true(默认值):恢复。

  • false:停止。

返回说明

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表示方法调用成功,其他表示方法调用失败。

MuteLocalMic

停止或恢复本地音频数据发送。

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

参数说明

名称

类型

描述

mute

bool

  • true表示本地音频发送空帧。

  • false表示恢复正常,默认值为false。

mode

AliEngineMuteLocalAudioMode

静音模式,默认麦克风静音模式。

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

mute只是发送音频数据为静音帧,采集和编码模块仍然在工作。

MuteRemoteAudio

停止或恢复远端的音频播放。

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

参数说明

名称

类型

描述

uid

const char *

用户ID。

mute

bool

  • true表示停止播放。

  • false表示恢复播放,默认值为false。

返回说明

0表示方法调用成功,其他表示方法调用失败。

MuteAllRemoteAudio

停止或恢复远端所有的音频播放。

virtual int MuteAllRemoteAudio(bool mute) = 0;

参数说明

名称

类型

描述

mute

bool

  • true表示停止播放。

  • false表示恢复播放,默认值为false。

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

拉流和解码不受影响。支持joinChannel之前和之后设置。

StartAudioCapture[1/2]

开启音频采集。

virtual int StartAudioCapture() = 0;

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

此接口可以控制提前打开音频采集,如果不设置,则SDK会在合适的时机在打开音频采集。

StartAudioCapture[2/2]

开启音频采集。

virtual int StartAudioCapture(bool keepAlive) = 0;

参数说明

参数

类型

描述

keepAlive

bool

离会后采集设备的状态,取值:

  • true:离会后采集设备保持开启状态。

  • false(默认值):离会后采集设备关闭。

返回说明

0表示方法调用成功,其他表示方法调用失败。

StopAudioCapture

关闭音频采集。

virtual int StopAudioCapture() = 0;

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

此接口可以控制关闭音频采集,与StartAudioCapture对应。

EnableAudioVolumeIndication

设置音量回调频率和平滑系数。

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

参数说明

名称

类型

描述

interval

int

时间间隔,单位为毫秒,最小值不得小于10ms,建议设置300~500ms,小于等于0表示不启用音量提示和说话人提示功能。

smooth

int

平滑系数,取值范围:[0,9],数值越大平滑程度越高,反之越低,实时性越好,建议设置3。

reportVad

int

说话人检测开关,取值:

  • 1:开启,通过onAudioVolumeCallback接口回调每一个说话人的状态。

  • 0:关闭。

返回说明

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表示方法调用成功,其他表示方法调用失败。

AddExternalAudioStream

增加外部音频流。

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

参数说明

名称

类型

描述

config

AliEngineExternalAudioStreamConfig

外部音频流配置。

返回说明

大于0表示方法调用成功,返回值为外部音频流ID,其他表示方法调用失败。

PushExternalAudioStreamRawData

输入外部音频流数据。

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

参数说明

名称

类型

描述

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表示失败。

SetExternalAudioStreamPlayoutVolume

设置外部音频流播放音量。

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

参数说明

名称

类型

描述

streamId

int

外部音频流Id。

vol

int

播放音量。

返回说明

0表示方法调用成功,其他表示方法调用失败。

GetExternalAudioStreamPlayoutVolume

获取外部音频流播放音量。

virtual int GetExternalAudioStreamPlayoutVolume(int streamId) = 0;

参数说明

名称

类型

描述

streamId

int

外部音频流Id。

返回说明

[0, 100]: 播放音量,小于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;

参数说明

名称

类型

描述

renderConfig

AliEngineVideoCanvas

渲染参数,包含渲染窗口以及渲染方式。

track

AliEngineVideoTrack

视频Track的类型。

返回说明

0表示方法调用成功,其他表示方法调用失败。

    说明

    支持JoinChannel之前和之后切换窗口。如果canvas或者AliEngineVideoCanvas::view为null,则停止渲染。

    如果在播放过程中需要重新设置render mode,请保持canvas中其他成员变量不变,仅修改renderMode。

    如果在播放过程中需要重新设置mirror mode,请保持canvas中其他成员变量不变,仅修改mirrorMode。

SetCameraCapturerConfiguration

设置摄像头采集偏好。

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

参数说明

名称

类型

描述

config

AliEngineCameraCapturerConfiguration

摄像头采集偏好,默认值:

  • preference:0

  • cameraDirection:0

返回说明

0表示方法调用成功,其他表示方法调用失败。

EnableLocalVideo

禁用或重新启用本地视频采集。

virtual int EnableLocalVideo(bool enabled) = 0;

参数说明

名称

类型

描述

enable

bool

true表示恢复正常,false表示停止视频采集,默认true。

返回说明

0表示方法调用成功,其他表示方法调用失败。

MuteLocalCamera

停止或恢复本地视频数据发送。

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

参数说明

名称

类型

描述

mute

bool

true表示视频数据发送黑帧,false表示恢复正常,默认值为false。

track

AliEngineVideoTrack

需要改变发布状态的视频Track类型。

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

此接口只是控制指定视频流上是否发送黑帧,采集和数据发送不会停止,如果需要关闭采集请使用EnableLocalVideo接口,如果需要中止视频数据发送请使用PublishLocalVideoStream接口。

SetRemoteViewConfig

为远端的视频设置渲染窗口以及绘制参数。

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

参数说明

名称

类型

描述

canvas

AliEngineVideoCanvas

渲染参数,包含渲染窗口以及渲染方式。

uid

const char *

用户ID。

track

AliEngineVideoTrack

需要设置的视频Track类型。

返回说明

0表示方法调用成功,其他表示方法调用失败。

    说明

    支持JoinChannel之前和之后切换窗口。如果canvas的view为null,则停止渲染相应的流。

    如果在播放过程中需要重新设置render mode,请保持canvas中其他成员变量不变,仅修改renderMode。

    如果在播放过程中需要重新设置mirror mode,请保持canvas中其他成员变量不变,仅修改mirrorMode。

isCameraOn

检查摄像头是否打开。

virtual bool IsCameraOn() = 0;

返回说明

YES表示摄像头已打开,NO表示摄像头没有打开。

SetVideoEncoderConfiguration

设置视频编码属性。

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

参数说明

名称

类型

描述

config

AliEngineVideoEncoderConfiguration

预定义的编码属性,默认值:

  • dimensions:[640,480]

  • frameRate:15

  • bitrate:0

  • mirrorMode:0

  • orientationMode:0

  • rotation:0

startPreview

开始本地预览(会自动打开摄像头)。

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

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

没有设置view,则无法预览。可以在JoinChannel之前就开启预览。

StopPreview

停止本地预览。

virtual int StopPreview() = 0;

返回说明

0表示方法调用成功,其他表示方法调用失败。

说明

LeaveChannel会自动停止本地预览,且会自动关闭摄像头(如果正在推camera流,则不会关闭摄像头)。

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

推流地址。

返回说明

返回旁路直播状态。

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() {};

OnAuthInfoExpired

用户调用需要鉴权的接口,服务端返回信息过期。

virtual void OnAuthInfoExpired() {};

OnJoinChannelResult[1/2]

加入频道结果回调(该回调等同于调用JoinChannel接口的block操作,即处理加入频道之后的事件,选择其一即可)。

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

参数说明

参数

类型

描述

result

int

加入频道结果,成功返回0,失败返回错误码。

channel

const char *

加入的频道ID。

userId

const char *

加入的用户ID。

elapsed

int

加入频道耗时。

OnJoinChannelResult[2/2]

加入频道结果回调(该回调等同于调用joinChannel接口的block操作,即处理加入频道之后的事件,选择其一即可)。

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

参数说明

参数

类型

描述

result

int

加入频道结果,成功返回0,失败返回错误码。

channel

const char *

加入的频道ID。

elapsed

int

加入频道耗时。

OnLeaveChannelResult

离开频道结果回调。调用LeaveChannel接口后返回,如果调用LeaveChannel后直接调用Destroy,将不会收到此回调。

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

参数说明

参数

类型

描述

result

int

离开频道结果,成功返回0,失败返回错误码。

stats

AliEngineStats

本次频道内会话的数据统计汇总。

OnRemoteUserOffLineNotify

远端用户下线时的回调。

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

参数说明

参数

类型

描述

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) {}

参数说明

参数

类型

描述

uid

const char *

用户ID从App server分配的唯一标示符。

audioTrack

AliEngineAudioTrack

远端用户发生变化后的音频流。

videoTrack

AliEngineAudioTrack

远端用户发生变化后的视频流。

OnBye

被服务器踢出或者频道关闭时回调。

virtual void OnBye(int 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) {};

参数说明

参数

类型

描述

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

数据回调。

OnAudioEffectFinished

本地音效播放结束回调。

virtual void OnAudioEffectFinished(int soundId) {}

参数

类型

描述

soundId

int

播放完成的音效的ID。

OnAudioVolumeCallback

订阅的音频音量、语音状态和UID的回调。

virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume) {}

参数说明

参数

类型

描述

volumeInfo

AliEngineUserVolumeInfo*

表示回调用户音量信息数组,包含用户UID、语音状态以及音量,UID为0表示本地说话人。

volumeInfoCount

int

表示回调用户音量信息数组中信息个数

totalVolume

int

混音后的总音量,范围[0,255]。在本地用户的回调中,totalVolume为本地用户混音后的音量;在远端用户的回调中,totalVolume为所有说话者混音后的总音量。

OnActiveSpeaker

当前正在说话的人的回调。

virtual void OnActiveSpeaker(const char *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

状态。

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;

参数说明

参数

类型

描述

enable

bool

是否允许数据回调。

audioSource

AliEngineAudioSource

回调数据源类型。

config

AliEngineAudioFrameObserverConfig

回调参数设置。

RegisterAudioFrameObserver

注册音频数据输出。

virtual int RegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

参数说明

参数

类型

描述

observer

IAudioFrameObserver*

音频数据回调。

registerVideoSampleObserver

注册视频数据输出。

virtual void RegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

unRegisterVideoSampleObserver

取消注册视频数据输出。

virtual void UnRegisterVideoSampleObserver(IVideoFrameObserver* observer) = 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。