本文介绍实时音视频Windows SDK接口详情。
目录
基础接口
API | 功能描述 |
创建AliRtcEngine实例。 | |
销毁引擎。 | |
设置H5兼容模式。 | |
检查当前是否兼容H5。 |
频道相关接口
API | 功能描述 |
设置频道模式。 | |
设置音频Profile。 | |
查询当前是否为纯音频模式。 | |
设置为纯音频模式还是音视频模式。 | |
加入频道。 | |
加入频道。 | |
离开频道。 | |
检查当前是否在频道中 | |
设置用户角色。 | |
刷新鉴权信息。 | |
刷新鉴权信息。 |
发布及订阅相关接口
API | 功能描述 |
设置是否发布音频流,默认会推送音频流。 | |
查询当前是否推音频流。 | |
设置是否默认接收音频流,默认会订阅所有远端音频流。 此接口建议入会前调用。 | |
停止或恢复接收所有远端音频流。 | |
停止或恢复特定远端用户的音频流拉取。 | |
设置是否发布视频流。 | |
查询当前是否发布视频流。 | |
设置是否默认接收视频流,默认会订阅所有远端视频频流。 此接口建议入会前调用。 | |
停止或恢复接收所有远端视频流。 | |
停止或恢复特定远端用户的媒体流。 建议在音视频都存在且需要控制时使用此接口。 | |
停止或恢复跨频道特定远端用户的媒体流。 |
音频设备管理相关接口
API | 功能描述 |
设置是否停止发布本地音频。 | |
设置是否停止播放远端音频流。 | |
停止或恢复远端所有的音频播放。 | |
开启音频采集。 | |
关闭音频采集。 | |
开启音量检测功能。 |
音频变声与混响
API | 功能描述 |
设置变声音效模式。 | |
设置变调参数。 | |
设置混响音效模式。 | |
设置混响音效类型和具体参数。 |
自定义音频输入
API | 功能描述 |
增加外部音频流。 | |
输入外部音频流数据。 | |
设置推流音量。 | |
获取推流音量。 | |
设置外部音频流播放音量。 | |
获取外部音频流播放音量。 |
音效文件
API | 功能描述 |
预加载音效文件。 | |
删除预加载的音效文件。 | |
开始播放音效。 | |
停止播放音效。 | |
停止播放所有音效。 | |
暂停音效。 | |
暂停所有音效。 | |
恢复指定音效文件。 | |
恢复所有音效文件。 | |
设置音效推流混音音量。 | |
获取音效推流混音音量。 | |
设置所有音效推流混音音量。 | |
设置音效本地播放音量。 | |
获取音效本地播放音量。 | |
设置所有音效本地播音量。 |
视频设备管理相关接口
API | 功能描述 |
为本地预览设置渲染窗口以及绘制参数。 | |
设置摄像头采集偏好。 | |
禁用或重新启用本地视频采集。 | |
设置是否停止发布本地视频流。 | |
为远端的视频设置渲染窗口以及绘制参数。 | |
检查摄像头是否打开。 | |
设置视频编码属性。 | |
开始本地预览。 | |
停止本地预览。 |
自定义视频输入
API | 功能描述 |
启用外部视频输入源。 | |
输入视频数据。 |
直播旁路接口
API | 功能描述 |
开启旁路直播。 | |
更新旁路直播相关参数。 | |
停止旁路直播。 | |
获取旁路直播状态。 |
回调事件
API | 功能描述 |
网络链接状态回调;客户需要关心此回调。 | |
本地设备异常回调;客户需要关心此回调。 | |
用户鉴权信息即将过期通知,收到后30秒鉴权过期;客户需要关心此回调。 | |
用户调用需要鉴权的接口时,服务端返回信息过期。 | |
加入频道结果回调。 | |
加入频道结果回调。 | |
离开频道结果回调。 | |
远端用户离线通知。 | |
远端用户上线通知。 | |
远端推流信息通知。 | |
被服务器踢出/会议结束频道的消息。 | |
音频推流状态通知。 | |
音频拉流状态通知。 | |
远端用户静音通知。 | |
音频设备打断开始通知。 | |
音频设备打断结束通知。 | |
视频推流变更回调。 | |
相机流订阅情况变更回调。 | |
对端用户发送视频黑帧数据发送通知。 | |
对端用户关闭相机流采集发送通知。 | |
远端用户应用退到后台。 | |
远端用户应用返回前台。 | |
实时数据回调(2s触发一次)。 | |
本地音效播放结束回调。 | |
订阅的音频音量,语音状态和uid。 | |
语音激励,监测到活跃用户回调。 | |
旁路推流状态改变回调。 | |
旁路任务状态改变回调。 |
其他接口
API | 功能描述 |
设置自定义参数。 | |
获取自定义参数。 | |
设置音频回调参数。 | |
注册音频数据回调。 | |
注册视频数据输出对象。 | |
取消注册视频数据输出对象。 | |
设置SDK日志文件保存路径。 | |
设置日志等级。 |
接口详情
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 |
|
当前版本不支持在创建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 |
|
返回说明
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 |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
IsLocalAudioStreamPublished
查询当前是否允许推音频流。
virtual bool IsLocalAudioStreamPublished() = 0;
返回说明
true表示允许推送,false表示不允许推送。
SetDefaultSubscribeAllRemoteAudioStreams
设置是否默认接收音频流。
virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
入会前、后均可调用。如果在加入频道后调用SetDefaultSubscribeAllRemoteAudioStreams(false)
,会接收不到设置后加入频道的用户的音频流。
停止接收音频流后,如果想要恢复接收,请调用SubscribeRemoteAudioStream(uid, true)
,并指定您想要接收的远端用户UID。
如果想恢复接收多个用户的音频流,则需要多次调用SubscribeRemoteAudioStream。SetDefaultSubscribeAllRemoteAudioStreams(true)
只能恢复接收后面加入频道的用户的音频流。
SubscribeAllRemoteAudioStreams
停止或恢复接收所有远端音频流。
virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
该接口作为订阅远端音频流的总开关,如果设置为false,则不仅当前会议中所有远端音频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了SetDefaultSubscribeAllRemoteAudioStreams(true)
)。
SubscribeRemoteAudioStream
停止或恢复特定远端用户的音频流拉取。
virtual int SubscribeRemoteAudioStream(const char* uid, bool sub) = 0;
参数说明
名称 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
如果之前已经调用过SubscribeAllRemoteAudioStreams(false)
对所有远端音频进行静音,在调用本API之前请确保您已调用SubscribeAllRemoteAudioStreams(true)
。
SubscribeAllRemoteAudioStreams是全局控制,SubscribeRemoteAudioStream是精细控制。
PublishLocalVideoStream
设置是否允许发布相机流。
virtual int PublishLocalVideoStream(bool enabled) = 0;
参数说明
名称 | 类型 | 描述 |
enable | bool |
|
IsLocalVideoStreamPublished
查询当前是否允许发布视频流。
virtual bool IsLocalVideoStreamPublished() = 0;
返回说明
true表示发布相机流,false表示不发布相机流。
SetDefaultSubscribeAllRemoteVideoStreams
设置是否默认接收视频流。
virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
入会前、后均可调用。如果在加入频道后调用SetDefaultSubscribeAllRemoteVideoStreams(false)
,会接收不到设置后加入频道的用户的视频流。
停止接收视频流后,如果想要恢复接收,请调用SubscribeRemoteVideoStream(uid,track,true)
,并指定您想要接收的远端用户UID。
如果想恢复接收多个用户的视频流,则需要多次调用SubscribeRemoteVideoStream,SetDefaultSubscribeAllRemoteVideoStreams(true)
只能恢复接收后面加入频道的用户的视频流。
SubscribeAllRemoteVideoStreams
停止或恢复接收所有远端视频流。
virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
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 | 停止或恢复特定远端用户的视频流拉取,取值:
|
subAudio | boo | 停止或恢复特定远端用户的音频流拉取,取值:
|
返回说明
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 | 停止或恢复特定远端用户的音频流拉取,取值:
|
sub | bool | 停止或恢复跨频道订阅指定用户的流。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
MuteLocalMic
停止或恢复本地音频数据发送。
virtual int MuteLocalMic(bool mute, AliEngineMuteLocalAudioMode mode = AliEngineMuteLocalAudioModeDefault) = 0;
参数说明
名称 | 类型 | 描述 |
mute | bool |
|
mode | AliEngineMuteLocalAudioMode | 静音模式,默认麦克风静音模式。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
mute只是发送音频数据为静音帧,采集和编码模块仍然在工作。
MuteRemoteAudio
停止或恢复远端的音频播放。
virtual int MuteRemoteAudio(const char *uid,
bool mute) = 0;
参数说明
名称 | 类型 | 描述 |
uid | const char * | 用户ID。 |
mute | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
MuteAllRemoteAudio
停止或恢复远端所有的音频播放。
virtual int MuteAllRemoteAudio(bool mute) = 0;
参数说明
名称 | 类型 | 描述 |
mute | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
拉流和解码不受影响。支持joinChannel之前和之后设置。
StartAudioCapture[1/2]
开启音频采集。
virtual int StartAudioCapture() = 0;
返回说明
0表示方法调用成功,其他表示方法调用失败。
此接口可以控制提前打开音频采集,如果不设置,则SDK会在合适的时机在打开音频采集。
StartAudioCapture[2/2]
开启音频采集。
virtual int StartAudioCapture(bool keepAlive) = 0;
参数说明
参数 | 类型 | 描述 |
keepAlive | bool | 离会后采集设备的状态,取值:
|
返回说明
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 | 说话人检测开关,取值:
|
返回说明
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 | 摄像头采集偏好,默认值:
|
返回说明
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 | 预定义的编码属性,默认值:
|
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 | 消息类型。取值:
|
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。 |