本文介绍实时音视频Windows SDK接口详情。
目录
基础接口
API | 功能描述 |
创建AliRtcEngine实例(单例模式)。 | |
销毁AliRtcEngine实例。 | |
获取功能接口实例。 | |
设置H5兼容模式。 | |
检查当前是否兼容H5。 | |
设置相关监听事件回调。 | |
查询当前 SDK 版本号。 |
频道相关接口
API | 功能描述 |
设置频道模式。 | |
设置音频Profile。 | |
查询当前是否为纯音频模式。 | |
设置为纯音频模式还是音视频模式。 | |
加入频道。 | |
加入频道。 | |
加入频道。 | |
离开频道。 | |
检查当前是否在频道中 | |
设置用户角色。 | |
获取用户角色类型。 | |
刷新鉴权信息。 | |
刷新鉴权信息。 |
发布及订阅相关接口
API | 功能描述 |
设置是否发布音频流,默认会推送音频流。 | |
查询当前是否推音频流。 | |
设置是否默认接收音频流,默认会订阅所有远端音频流。 此接口建议入会前调用。 | |
停止或恢复特定远端用户的音频流拉取。 | |
停止或恢复接收所有远端音频流。 | |
设置是否发布视频流。 | |
查询当前是否发布视频流。 | |
设置是否默认接收视频流,默认会订阅所有远端视频频流。 此接口建议入会前调用。 | |
停止/恢复订阅远端用户的视频流。 | |
停止或恢复接收所有远端视频流。 | |
停止或恢复特定远端用户的媒体流。 建议在音视频都存在且需要控制时使用此接口。 | |
停止或恢复特定远端用户的媒体流。 建议在音视频都存在且需要控制时使用此接口。 | |
停止或恢复跨频道特定远端用户的媒体流。 | |
调节本地播放的指定远端用户音量。 |
音频设备管理相关接口
API | 功能描述 |
设置是否停止发布本地音频。 | |
设置是否停止播放远端音频流。 | |
停止或恢复远端所有的音频播放。 | |
开启音频采集。 | |
开启音频采集。 | |
关闭音频采集。 | |
开启音量检测功能。 | |
开启音频播放设备。 | |
关闭音频播放。 | |
设置播放音量。 | |
设置录音音量。 | |
播放音频文件。 | |
停止播放音频文件。 | |
通话前开启音频采集测试。 | |
关闭音频采集测试。 | |
开启/关闭系统声音采集推送。 | |
当前是否开启系统声音采集推送。 | |
设置系统声音采集推送音量。 | |
获取当前设置系统声音采集推送音量。 | |
设置系统声音播放音量。 | |
获取当前设置系统声音播放音量。 | |
获取音频采集设备列表。 | |
获取当前音频采集设备名称。 | |
获取当前音频采集设备ID。 | |
设置指定名称的音频采集设备为当前使用设备。 | |
设置当前音频采集设备ID。 | |
获取当前音频播放设备列表。 | |
获取当前音频系统播放设备列表。 | |
获取当前音频播放设备名称。 | |
获取当前音频播放设备ID。 | |
设置指定的名称设备为当前使用的播放设备。 | |
设置指定ID的设备为当前使用的播放设备。 | |
设置音频采集设备的音量。 | |
获取音频采集设备的音量。 | |
设置音频播放设备的音量。 | |
获取音频播放设备的音量。 | |
设置音频采集设备的mute状态。 | |
获取音频采集设备的mute状态。 | |
设置音频播放设备的mute状态。 | |
获取音频播放设备的mute状态。 |
音频变声与混响
API | 功能描述 |
设置变声音效模式。 | |
设置变调参数。 | |
设置混响音效模式。 | |
设置混响音效类型和具体参数。 |
自定义音频输入
API | 功能描述 |
增加外部音频流。 | |
输入外部音频流数据。 | |
设置推流音量。 | |
获取推流音量。 | |
设置外部音频流播放音量。 | |
获取外部音频流播放音量。 | |
移除外部音频流。 |
音频伴奏
API | 功能描述 |
获取音频文件信息。 | |
开始伴奏混音。 | |
停止伴奏混音。 | |
设置伴奏音量。 | |
设置伴奏推流音量。 | |
获取伴奏推流音量。 | |
设置伴奏本地播放音量。 | |
获取伴奏本地播放音量。 | |
暂停伴奏混音。 | |
重新开始伴奏混音。 | |
获取伴奏文件时长, 单位为毫秒。 | |
获取伴奏文件播放进度,单位为毫秒。 | |
设置伴奏文件的播放位置。 |
音效文件
API | 功能描述 |
预加载音效文件。 | |
删除预加载的音效文件。 | |
开始播放音效。 | |
停止播放音效。 | |
停止播放所有音效。 | |
暂停音效。 | |
暂停所有音效。 | |
恢复指定音效文件。 | |
恢复所有音效文件。 | |
设置音效推流混音音量。 | |
获取音效推流混音音量。 | |
设置所有音效推流混音音量。 | |
设置音效本地播放音量。 | |
获取音效本地播放音量。 | |
设置所有音效本地播音量。 |
视频设备管理相关接口
API | 功能描述 |
为本地预览设置渲染窗口以及绘制参数。 | |
设置摄像头采集偏好。 | |
禁用或重新启用本地视频采集。 | |
设置是否停止发布本地视频流。 | |
为远端的视频设置渲染窗口以及绘制参数。 | |
检查摄像头是否打开。 | |
设置视频编码属性。 | |
设置视频解码属性。 | |
开始本地预览。 | |
停止本地预览。 | |
设置预览和推流镜像能力。 | |
设置采集缩放时机,视频数据是采集的时候立即缩放还是编码时才进行缩放。 | |
获取可用摄像头列表。 | |
获取当前使用摄像头名称。 | |
获取当前使用摄像头ID。 | |
设置指定名称的摄像头为当前使用摄像头。 | |
设置指定ID的摄像头为当前使用摄像头。 | |
获取当前使用的摄像头支持的分辨率列表。 |
配置视频数据回调
API | 功能描述 |
注册视频数据输出对象。 | |
取消注册视频数据输出对象。 | |
视频截图功能。 |
配置音频数据回调
API | 功能描述 |
注册音频数据回调。 | |
取消订阅音频数据输出。 | |
设置音频回调参数。 |
自定义视频输入
API | 功能描述 |
启用外部视频输入源。 | |
输入视频数据。 |
桌面共享接口
API | 功能描述 |
开始共享指定的桌面ID对应的屏幕流。 | |
开始共享屏幕指定区域的视频流。 | |
根据用户指定的窗口ID,将其作为视频源进行视频流的共享与推送。 | |
停止屏幕共享。 | |
重新开始屏幕共享。 | |
暂停屏幕共享。 | |
查询是否已设置推送屏幕共享。 | |
更新屏幕共享配置。 | |
判断共享的窗口ID对应的窗口是否有效。 | |
返回当前屏幕共享的配置信息。 | |
根据指定的源获取对象列表。 | |
获取当前共享的屏幕共享源ID。 | |
根据指定的源获取对象列表。 | |
根据指定的源ID和源标题获取桌面共享范围。 | |
设置屏幕流视频编码属性。 |
直播旁路接口
API | 功能描述 |
开启旁路直播。 | |
更新旁路直播相关参数。 | |
停止旁路直播。 | |
获取旁路直播状态。 | |
开始通话前网络质量探测。 | |
停止通话前网络质量探测。 |
网络质量探测接口
API | 功能描述 |
开始通话前网络质量探测。 | |
停止通话前网络质量探测。 |
SEI
API | 功能描述 |
发送媒体扩展信息,内部使用SEI实现。 | |
发送媒体扩展信息(扩展),内部使用SEI实现。 |
其他接口
API | 功能描述 |
设置自定义参数。 | |
获取自定义参数。 | |
设置SDK日志文件保存路径。 | |
设置日志等级。 | |
获取时间轴时间。 | |
发送data channel 消息。 |
回调事件
AliEngineEventListener
API | 功能描述 |
网络链接状态回调;客户需要关心此回调。 | |
本地设备异常回调;客户需要关心此回调。 | |
用户鉴权信息即将过期通知,收到后30秒鉴权过期;客户需要关心此回调。 | |
用户调用需要鉴权的接口时,服务端返回信息过期。 | |
加入频道结果回调。 | |
离开频道结果回调。 | |
远端用户离线通知。 | |
远端用户上线通知。 | |
远端推流信息通知。 | |
被服务器踢出/会议结束频道的消息。 | |
音频推流状态通知。 | |
音频拉流状态通知。 | |
远端用户静音通知。 | |
音频设备打断开始通知。 | |
音频设备打断结束通知。 | |
视频推流变更回调。 | |
相机流订阅情况变更回调。 | |
对端用户发送视频黑帧数据发送通知。 | |
对端用户关闭相机流采集发送通知。 | |
远端用户应用退到后台。 | |
远端用户应用返回前台。 | |
本地音效播放结束回调。 | |
订阅的音频音量,语音状态和uid。 | |
语音激励,监测到活跃用户回调。 | |
旁路推流状态改变回调。 | |
旁路任务状态改变回调。 | |
网络质量变化回调。 | |
通话前网络质量探测的回调,开始探测3s左右提供该回调。 | |
通话前网络质量探测的结果回调,探测30s左右提供该回调。 | |
如果engine出现error,通过这个回调通知app。 | |
音频首包发送回调。 | |
音频首包接收回调。 | |
视频首包发送回调。 | |
视频首包接收回调。 | |
已解码远端音频首帧回调。 | |
远端用户的第一帧视频帧显示时触发这个消息。 | |
预览开始显示第一帧视频帧时触发这个消息。 | |
通话前音频采集检测的音量回调。 | |
本地伴奏播放状态回调。 | |
音频文件信息回调。 | |
远端用户伴奏播放开始回调。 | |
远端用户伴奏播放结束回调。 | |
实时数据回调(2s触发一次)。 | |
本地视频统计信息(2s 触发一次)。 | |
远端视频统计信息(2s 触发一次)。 | |
本地音频统计信息(2s 触发一次)。 | |
远端音频统计信息(2s 触发一次)。 | |
收到媒体扩展信息回调。 | |
截图结果回调。 | |
本地音频设备状态回调。 | |
本地视频设备状态回调。 | |
可以开始发送data channel消息回调。 | |
data channel 消息回调。 |
IAudioFrameObserver
API | 功能描述 |
采集裸数据回调。 | |
3A后数据回调。 | |
推流数据回调。 | |
播放数据回调。 | |
远端拉流数据回调。 |
IVideoFrameObserver
API | 功能描述 |
本地采集视频数据回调。 | |
本地编码前视频数据回调。 | |
远端视频数据回调。 | |
视频输出宽度对齐方式。 | |
视频数据输出内容。 |
AliEngineDestroyCompletionCallback
API | 功能描述 |
销毁完成回调。 |
接口详情
Create
创建AliRtcEngine实例。
static AliEngine *Create(const char *extras);
调用时机
请确保在调用 ARTC SDK 其他 APi 前调用该方法创建 AliRtcEngine 实例。
调用限制
对于每个 App,SDK 仅支持创建一个 AliRtcEngine 实例。
参数说明
名称 | 类型 | 描述 |
extras | const char * | 用于接收来自客户灰度下发的参数,通过JSON配置SDK的特别功能,可以是空字符串。 |
返回说明
返回一个 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 平台下许多高级功能(如音频设备管理AliEngineInterfaceAudioDeviceManger
、视频设备管理AliEngineInterfaceVideoDeviceManger
和媒体引擎AliEngineInterfaceMediaEngine
)是通过对应的接口类提供的。但在调用相关方法之前,必须通过 QueryInterface
方法获取这些接口的实例。
开发者在使用接口实例之后,如果不再需要,应通过调用对应接口的 Release 方法释放资源,避免内存泄漏。
参数说明
名称 | 类型 | 描述 |
iid | 表示功能接口的类型,告诉 SDK 希望获取的接口实例是什么类型。
| |
pInterface | void** | 返回获取接口类型的实例。传参示例如下:
传入 |
返回说明
0:获取成功。
<0:获取失败。
SetH5CompatibleMode
设置是否兼容H5。
static void SetH5CompatibleMode(bool comp);
参数说明
名称 | 类型 | 描述 |
comp | bool |
|
当前版本不支持在创建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 |
| 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 | 频道类型,RTC场景下都建议设置为AliEngineInteractiveLive,即互动直播模式。 |
返回说明
0:表示方法调用成功。
其他表示方法调用失败。
-1:SDK未初始化或已销毁。
SetAudioProfile
设置音频Profile。
virtual int SetAudioProfile(int audioProfile, int audioScene) = 0;
该接口用于设置音频编码模式以及音频场景模式。详情请参考音频常用操作和配置。ARTC SDK 默认使用高音质模式(AliEngineHighQualityMode)和音乐场景模式(AliEngineSceneMusicMode)。如果默认设置无法满足您的需求,您需要调用此接口进行设置。
调用时机
该接口只可以在加入频道之前调用,加入频道后不可以重新设置,离开频道后可以重新设置。
参数说明
名称 | 类型 | 描述 |
audio_profile | 音频采集或编码模式参数,建议使用高音质模式(AliRtcEngineHighQualityMode)。 说明 如果需要与 web 互通,需要设置采样率为 48k。
| |
audio_scene | 音频场景模式参数,主要包含:
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
IsAudioOnlyMode
检查当前是否纯音频模式。
virtual bool IsAudioOnlyMode() = 0;
返回说明
YES表示纯音频模式,NO表示音视频模式。
SetAudioOnlyMode
设置为纯音频模式还是音视频模式。
virtual int SetAudioOnlyMode(bool audioOnly) = 0;
参数说明
名称 | 类型 | 描述 |
audioOnly | bool |
|
返回说明
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
。
如果没有特殊配置,加入频道时默认订阅频道内所有其他用户的音视频流,默认推送音视频流到远端,如果想要取消默认订阅可在调用本接口前调用SetDefaultSubscribeAllRemoteAudioStreams
和SetDefaultSubscribeAllRemoteVideoStreams
关闭对音频流或视频流的订阅。
调用时机
需要在创建引擎后调用。
调用限制
加入频道成功后,如果中途需要加入其他频道,必须先调用
LeaveChannel
离开当前频道,并确保收到OnLeaveChannelResult
回调,之后才能再次调用入会。该方法仅支持用户一次加入一个频道。
使用不同 App ID 的 App 不能互通。
加入频道失败重试时无需调用。
相关回调
成功调用该接口后会触发以下回调:
本端加入频道的结果会通过
AliRtcEngineEventListener
中的OnJoinChannelResult
回调进行通知加入频道的结果成功加入频道后,远端会触发
OnRemoteUserOnLineNotify
回调。
参数说明
参数 | 类型 | 描述 |
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
。
如果没有特殊配置,加入频道时默认订阅频道内所有其他用户的音视频流,默认推送音视频流到远端,如果想要取消默认订阅可在调用本接口前调用
SetDefaultSubscribeAllRemoteAudioStreams
和SetDefaultSubscribeAllRemoteVideoStreams
关闭对音频流或视频流的订阅。本接口为多参入会接口,调用前请参照Token鉴权生成多参入会的 Token。
调用限制
加入频道成功后,如果中途需要加入其他频道,必须先调用
LeaveChannel
离开当前频道,并确保收到OnLeaveChannelResult
回调,之后才能再次调用入会。该方法仅支持用户一次加入一个频道。
使用不同 App ID 的 App 不能互通。
相关回调
成功调用该接口后会触发以下回调:
本端加入频道的结果会通过
OnJoinChannelResult
回调进行通知加入频道的结果成功加入频道后,远端会触发
OnRemoteUserOnLineNotify
回调。
参数说明
名称 | 类型 | 描述 |
authInfo | 鉴权信息。 | |
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
。
如果没有特殊配置,加入频道时默认订阅频道内所有其他用户的音视频流,默认推送音视频流到远端,如果想要取消默认订阅可在调用本接口前调用SetDefaultSubscribeAllRemoteAudioStreams
和SetDefaultSubscribeAllRemoteVideoStreams
关闭对音频流或视频流的订阅。
调用限制
加入频道成功后,如果中途需要加入其他频道,必须先调用
leaveChannel
离开当前频道,并确保收到OnLeaveChannelResult
回调,之后才能再次调用加入频道。该方法仅支持用户一次加入一个频道。
使用不同 App ID 的 App 不能互通。
加入频道失败重试时无需调用。
相关回调
成功调用该接口后会触发以下回调:
本端加入频道的结果会通过
OnJoinChannelResult
回调进行通知加入频道的结果成功加入频道后,远端会触发
OnRemoteUserOnLineNotify
回调。
参数说明
参数 | 类型 | 描述 |
token | const char * | 单参数入会的鉴权信息。 |
channelId | const char * | 入会频道,必须和产生token时一样;可以不传,此时会默认使用产生token的channelId |
userId | const char * | 入会的userid,必须和产生token时一样;可以不传,此时会默认使用产生token的userId |
userParam | 用户属性,如用户昵称、类型、自定义ID等。 |
返回说明
0表示方法调用成功,非0表示方法调用失败。
LeaveChannel
离开频道。
virtual int LeaveChannel() = 0;
调用该方法后,SDK 会终止音视频互动、离开当前频道。
该方法为异步操作,方法调用成功时并没有真正退出频道,需要等待
OnLeaveChannelResult
回调后才会真正退出频道。leaveChannel 完成后请销毁引擎并将引擎置空。
mAliRtcEngine->LeaveChannel(); AliEngine::Destroy(); mAliRtcEngine = nullptr;
调用时机
应该在加入频道后需要离开频道时调用该方法。
如果已经加入频道且需要加入其他频道需要调用此接口先退出频道。
相关回调
本端:调用本方法后会触发
OnLeaveChannelResult
回调通知离会结果。远端:调用该接口成功后远端用户会触发
OnRemoteUserOffLineNotify
回调。
返回说明
0表示方法调用成功,其他表示方法调用失败。
IsInCall
检查当前是否在频道中。
virtual bool IsInCall() = 0;
返回说明
true表示在频道中,false表示不在频道中。
SetClientRole
设置用户角色。
virtual int SetClientRole(const AliEngineClientRole clientRole) = 0;
该方法用于设置用户角色为主播/观众。
互动模式下,加入频道前:
设置用户角色为主播:SDK默认会自动推送本地音视频流,并接收其他主播的音视频流
设置用户角色为观众:SDK不会推送本地的音视频流,但会接收其他主播的音视频流。
调用时机
该方法在加入频道前后均可调用,可以在入会前调用设置用户角色,也可以在入会后调用进行用户角色切换。
调用限制
该方法在互动模式下才有效,即调用SetChannelProfile
接口设置为AliEngineInteractiveLive
时才有效。
互动模式下建议入会前显式调用设置用户角色。
参数说明
名称 | 类型 | 描述 |
role | 用户角色类型,默认值为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 | 鉴权信息。 |
返回说明
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 |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
IsLocalAudioStreamPublished
查询当前是否允许推音频流。
virtual bool IsLocalAudioStreamPublished() = 0;
返回说明
true表示允许推送,false表示不允许推送。
SetDefaultSubscribeAllRemoteAudioStreams
设置是否默认接收音频流。
virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;
该接口用于配置系统是否默认订阅远端用户的音频流,该设置将影响新加入频道用户的音频流订阅行为。无特殊场景需求建议设置为 true。
调用时机
加入频道前后均可调用。
加入频道前:
SDK 加入频道时默认订阅远端用户的音频流,如果希望修改此行为,可在加入频道前调用该接口。
加入频道后:
如果希望停止默认订阅,可调用
SetDefaultSubscribeAllRemoteAudioStreams(false)
,则不会订阅后续加入频道的用户的音频流。停止默认订阅后,如果希望恢复订阅指定用户的音频流,请调用
SubscribeRemoteAudioStream
接口,如果希望恢复多个用户请多次调用。停止默认订阅后,调用
SetDefaultSubscribeAllRemoteAudioStreams(true)
仅恢复后续加入频道的用户的音频流,对于停止期间加入的远端用户不会订阅。
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteAudioStream
停止或恢复特定远端用户的音频流拉取。
virtual int SubscribeRemoteAudioStream(const char* uid, bool sub) = 0;
该接口用于停止或恢复订阅特定远端用户的音频流,无特殊场景需求建议设置为 true。
SDK 在入会时默认会订阅所有远端用户的音频流,如果要修改此行为,可以在入会前调用SetDefaultSubscribeAllRemoteAudioStreams(false)
取消该默认配置。
参数说明
名称 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
SubscribeAllRemoteAudioStreams
停止或恢复接收所有远端音频流。
virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;
该接口为订阅远端音频流的总开关,建议设为 true。 如果设置为 false,则会导致:
当前会议中所有远端音频停止订阅;
后续入会的新用户也不再订阅;
无法通过
SubscribeRemoteAudioStream
单独操控指定用户的音频流。
如果需要重新订阅,请再次调用本接口并设置为 true 恢复订阅。
SDK 在入会时默认会订阅所有远端用户的音频流,如果要修改此行为,可以在入会前调用SetDefaultSubscribeAllRemoteAudioStreams(false)
取消该默认配置。
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
PublishLocalVideoStream
发布/停止发布相机流。
virtual int PublishLocalVideoStream(bool enabled) = 0;
该方法用于控制是否发布本地采集的视频流。
SDK默认推送视频流,如果需要关闭视频流推送,请在入会前调用 PublishLocalVideoStream(false)。
调用时机
加入频道前后均可调用。
加入频道前调用可修改默认配置,在加入频道时生效。
相关回调
本地音频推流结果发生变化时,本端会触发OnVideoPublishStateChanged
回调通知音频推流最新状态,远端会触发OnRemoteTrackAvailableNotify
通知远端用户的音视频流发生变化。
参数说明
名称 | 类型 | 描述 |
enable | bool |
|
返回说明
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 |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteVideoStream
停止/恢复订阅远端用户的视频流。
virtual int SubscribeRemoteVideoStream(const char* uid, AliEngineVideoTrack track, bool sub) = 0;
对指定用户的视频流进行订阅和取消订阅的操作。
SDK 在入会时默认会订阅所有远端用户的视频流,如果要修改此行为,可以在入会前调用SetDefaultSubscribeAllRemoteVideoStreams(false)
取消该默认配置。
调用时机
入会前后均可调用。
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户 ID。 |
track | 视频流类型。 | |
sub | bool | 是否订阅远端用户的视频流,控制订阅或取消订阅。 |
返回说明
true:设置成功。
false:设置失败。
SubscribeAllRemoteVideoStreams
停止或恢复接收所有远端视频流。
virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;
该接口为订阅远端视频流的总开关,如果设置为 false,则会导致:
当前会议中所有远端视频流停止订阅;
后续入会的新用户也不再订阅(即使设置了
SetDefaultSubscribeAllRemoteVideoStreams(true)默认订阅)
;无法通过
SubscribeRemoteVideoStream
单独操控指定用户的音频流。
如果需要重新订阅,请再次调用本接口并设置为 true 恢复订阅。
SDK 在入会时默认会订阅所有远端用户的视频流,如果要修改此行为,可以在入会前调用SetDefaultSubscribeAllRemoteVideoStreams(false)
取消该默认配置。
参数说明
名称 | 类型 | 描述 |
sub | bool |
|
返回说明
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 | 视频流类型。 | |
subVideo | boo | 停止或恢复特定远端用户的视频流拉取,取值:
|
subAudio | boo | 停止或恢复特定远端用户的音频流拉取,取值:
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
SubscribeRemoteMediaStream[2/2]
停止或恢复特定远端用户的媒体流。
virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, AliEngineAudioTrack audioTrack) = 0;
该接口用于合并订阅远端音视频流。
相关接口
相比于SubscribeRemoteMediaStream[1/2]
,这个接口通过 videoTrack、audioTrack 两个参数在一个接口中把想要订阅的状态告知SDK,例如:
希望订阅相机流和麦克风流,则在调用时将 videoTrack 和 audioTrack 分别置为
AliRtcVideoTrackCamera
和AliRtcAudioTrackMic
。希望取消订阅相机流但保留麦克风,则在再次调用时将 videoTrack 和 audioTrack 分别置为
AliRtcVideoTrackNo
和AliRtcAudioTrackMic
。如果希望都取消,则在再次调用时将 videoTrack 和 audioTrack 分别置为
AliRtcVideoTrackNo
和AliRtcAudioTrackNo
。如果希望同时订阅相机流和屏幕共享流两路视频流,将 videoTrack 设置为
AliRtcVideoTrackBoth
,音频同理。
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
videoTrack | 视频流类型。 | |
audioTrack | 音频流类型。 |
返回说明
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 | 需要订阅的视频流。 | |
sub_audio | bool | 停止或恢复特定远端用户的音频流拉取,取值:
|
sub | bool | 停止或恢复跨频道订阅指定用户的流。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
SetRemoteAudioVolume
调节本地播放的指定远端用户音量。
virtual int SetRemoteAudioVolume(const char *uid, int volume) = 0;
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户 ID。 |
volume | int | 播放音量,取值范围[0,100]。 0:静音; 100:原始音量。 |
返回说明
0:成功。
非 0:失败。
MuteLocalMic
停止或恢复本地音频数据发送。
virtual int MuteLocalMic(bool mute, AliEngineMuteLocalAudioMode mode = AliEngineMuteLocalAudioModeDefault) = 0;
静音是指音频流发送静音帧,采集和编码模块仍然在工作。
调用时机
加入房间前后均可调用。
相关回调
调用成功后,远端用户触发OnUserAudioMuted
通知该用户是否静音。
参数说明
名称 | 类型 | 描述 |
mute | bool |
|
mode | 静音模式,默认静音全部。
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
MuteRemoteAudio
停止或恢复远端的音频播放。
virtual int MuteRemoteAudio(const char *uid,
bool mute) = 0;
该接口仅用于停止或者恢复远端指定用户的音频的播放,但是不影响对远端音频的拉流和解码,如果希望取消订阅某个用户的音频流,请调用SubscribeRemoteAudioStream
完成。
调用时机
加入频道前后均可调用。
参数说明
名称 | 类型 | 描述 |
uid | const char * | 用户ID。 |
mute | bool |
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
MuteAllRemoteAudio
停止或恢复远端所有的音频播放。
virtual int MuteAllRemoteAudio(bool mute) = 0;
该接口用于停止或恢复远端所有音频播放。
本接口仅是停止播放,拉流和解码不受影响。
支持JoinChannel之前和之后设置。
调用时机
加入频道前后均可设置。
参数说明
名称 | 类型 | 描述 |
mute | bool |
|
返回说明
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 | 离会后采集设备的状态,取值:
|
返回说明
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 | 说话人检测开关,取值:
|
返回说明
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 | 开启/关闭系统声音采集推动。
|
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 | 模式值,默认值为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 | 音效模式,默认值为AliEngineAudioEffectReverbOff。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
SetAudioEffectReverbParamType
设置混响音效类型和具体参数。
virtual int SetAudioEffectReverbParamType(const AliEngineAudioEffectReverbParamType& type,
float value) = 0;
参数说明
名称 | 类型 | 描述 |
type | 音效混响模式。 | |
value | float | 具体参数值。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
AddExternalAudioStream
增加外部音频流。
virtual int AddExternalAudioStream(const AliEngineExternalAudioStreamConfig& config) = 0;
该接口用于新增一个外部音频流。以下为相关步骤:
调用
AddExternalAudioStream
接口添加一个外部音频流并获取外部音频流 ID。调用
PushExternalAudioStreamRawData
向创建的音频流中传入音频数据。结束通话时,需要调用
RemoveExternalAudioStream
移除外部音频流。
如需在频道中发布自定义采集音频,可参考文档自定义音频采集。
参数说明
名称 | 类型 | 描述 |
config | AliEngineExternalAudioStreamConfig | 外部音频流配置。 |
返回说明
大于0表示方法调用成功,返回值为外部音频流ID,其他表示方法调用失败。
PushExternalAudioStreamRawData
输入外部音频流数据。
virtual int PushExternalAudioStreamRawData(int streamId, AliEngineAudioRawData& data) = 0;
该接口用于向指定的音频流传入数据。以下为相关步骤:
调用
AddExternalAudioStream
接口添加一个外部音频流并获取外部音频流 ID。调用
PushExternalAudioStreamRawData
向创建的音频流中传入音频数据。结束通话时,需要调用
RemoveExternalAudioStream
移除外部音频流。
如需在频道中发布自定义采集音频,可参考文档自定义音频采集。
参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id。 |
data | 音频数据。 |
返回说明
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 | 伴奏播放配置。 |
返回说明
0:成功。
非 0:失败,返回错误码。
StopAudioAccompany
停止伴奏混音。
virtual int StopAudioAccompany() = 0;
返回说明
0:成功。
非 0:失败,返回错误码。
SetAudioAccompanyVolume
设置伴奏音量。
virtual int SetAudioAccompanyVolume(int volume) = 0;
参数说明
名称 | 类型 | 描述 |
volume | int | 伴奏音量,取值范围[0,100]。
|
返回说明
0:成功。
非 0:失败,返回错误码。
SetAudioAccompanyPublishVolume
设置伴奏推流音量。
virtual int SetAudioAccompanyPublishVolume(int volume) = 0;
设置音量需要在AliEngine::StartAudioAccompany后才能生效。
参数说明
名称 | 类型 | 描述 |
volume | int | 伴奏推流音量,取值范围[0,100]。
|
返回说明
0:成功。
非 0:失败,返回错误码。
GetAudioAccompanyPublishVolume
获取伴奏推流音量。
virtual int GetAudioAccompanyPublishVolume() = 0;
返回说明
伴奏推流的音量,范围为 [0-100]。
SetAudioAccompanyPlayoutVolume
设置伴奏本地播放音量。
virtual int SetAudioAccompanyPlayoutVolume(int volume) = 0;
参数说明
名称 | 类型 | 描述 |
volume | int | 伴奏播放音量,取值范围[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 | 渲染参数,包含渲染窗口以及渲染方式。 | |
track | 视频Track的类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
SetCameraCapturerConfiguration
设置摄像头采集偏好。
virtual int SetCameraCapturerConfiguration(const AliEngineCameraCapturerConfiguration& config) = 0;
该接口用于配置摄像头采集时的偏好,例如摄像头方向、采集帧率等。
调用时机
必须在打开摄像头之前设置,例如在以下操作前调用:
StartPreview(开始预览)
JoinChannel(加入频道)
参数说明
名称 | 类型 | 描述 |
config | 摄像头采集偏好,包括摄像头方向、帧率等。默认值:
以上-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 | 需要改变发布状态的视频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 | 渲染参数,包含渲染窗口以及渲染方式。 | |
uid | const char * | 用户ID。 |
track | 需要设置的视频Track类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
IsCameraOn
检查摄像头是否打开。
virtual bool IsCameraOn() = 0;
返回说明
YES表示摄像头已打开,NO表示摄像头没有打开。
SetVideoEncoderConfiguration
设置视频编码属性。
virtual void SetVideoEncoderConfiguration(const AliEngineVideoEncoderConfiguration& config) = 0;
该方法用于设置视频流编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等。有视频场景都建议调用此接口。
所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。
调用时机
该方法在入会前和入会后都可以调用。如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。
调用限制
该方法的 mirrorMode 和 setVideoMirrorMode 均可设置视频推流镜像,建议只使用一种,同时使用多种会导致镜像效果叠加从而造成设置镜像失败或错乱。
参数说明
名称 | 类型 | 描述 |
config | 预定义的编码属性,默认值:
|
SetVideoDecoderConfiguration
设置视频解码属性。该方法用于设置相机流视频解码属性,包含软硬解设置、是否启用 B 帧等。
virtual void SetVideoDecoderConfiguration(const AliEngineVideoDecoderConfiguration& config) = 0;
调用时机
推荐在入会拉流前调用。
参数说明
参数 | 类型 | 描述 |
config | 结构体,描述视频解码属性,主要属性及默认值 |
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 | 设置镜像的模式 |
返回说明
0:设置成功。
<0:设置失败。
AliRtcErrInner: SDK内部状态错误,需检查是否创建SDK实例成功。
SetCapturePipelineScaleMode
设置采集缩放时机,视频数据是采集的时候立即缩放还是编码时才进行缩放。
virtual void SetCapturePipelineScaleMode(const AliEngineCapturePipelineScaleMode mode) = 0;
设置视频数据采集缩放时机是采集的时候立即缩放还是编码时才进行缩放。例如当采集的分辨率与编码分辨率不一致时可以通过设置缩放的时机来决定预览数据与推流数据是否一致。
调用时机
此方法需要在打开摄像头之前进行设置,例如在 StartPreview 开始预览、JoinChannel 加入频道之前进行设置。
参数说明
名称 | 类型 | 描述 |
mode | 控制采集缩放时机的模式,默认是采集的时候立即缩放。 |
GetCameraList
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 | 流类型。 | |
renderMode | 渲染模式。 |
PushExternalVideoFrame
输入视频数据。
virtual int PushExternalVideoFrame(const AliEngineVideoRawData &frame,
AliEngineVideoTrack type) = 0;
参数说明
名称 | 类型 | 描述 |
frame | 帧数据。 | |
type | 流类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
StartPublishLiveStream
开启旁路直播。
virtual int StartPublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;
参数说明
名称 | 类型 | 描述 |
streamUrl | const String | 推流地址。 |
transcoding | 推流所需参数。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
UpdatePublishLiveStream
更新旁路直播相关参数。
virtual int UpdatePublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;
参数说明
名称 | 类型 | 描述 |
streamUrl | const String | 推流地址。 |
transcoding | 推流所需参数。 |
返回说明
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 在同一时刻只能执行一个网络探测,在上一次探测结束前重复调用会失效。
相关回调
成功调用该方法后,会触发两个回调:
OnLastmileDetectResultWithQuality:约3s后会触发该回调,粗略的判断网络等级。
OnLastmileDetectResultWithBandWidth: 约30s后会触发该回调,给出详细的探测结果。
参数说明
参数 | 类型 | 描述 |
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 | 当前状态值。 | |
reason | 引起状态变化的具体原因。 |
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;失败返回错误码,详情请参见错误码列表,下面为一些常见错误码:
|
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 | 本次频道内会话的数据统计汇总。 |
OnRemoteUserOffLineNotify
远端用户下线时的回调。
virtual void OnRemoteUserOffLineNotify(const char *uid, AliEngineUserOfflineReason reason) {}
该回调用于通知本地用户,远端用户因各种原因离开频道。当远端用户离线,该接口将被触发。
触发条件
当远端用户角色主动离开频道时,触发回调。
当远端主播调用
SetClientRole
切换为观众角色(设置为 AliEngineClientRoleLive)时,触发回调。当长时间未收到远端主播数据并认为其掉线时,触发回调。
参数说明
参数 | 类型 | 描述 |
uid | const char * | 用户ID从App server分配的唯一标示符。 |
reason | 用户离线的原因。 |
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 | 远端用户发生变化后的音频流。 | |
videoTrack | 远端用户发生变化后的视频流。 |
OnBye
被服务器踢出或者频道关闭时回调。
virtual void OnBye(int code) {}
当用户因某种原因被断开或者会议结束,此回调便会被触发,开发者可以根据回调参数 code
来得知被断开的原因并作出相应处理。
触发条件
当前用户被服务器踢出。
会议结束(服务器主动移除频道)。
被动离开,需要客户端尝试恢复会话或重新连接。
参数说明
参数 | 类型 | 描述 |
code | int | 消息类型。取值:
|
OnAudioPublishStateChanged
音频推流变更回调。
virtual void OnAudioPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};
该回调用于监听本地用户音频流推流状态变化。
触发条件
当用户的音频推流状态发生变化时,例如:
停止推流。
调用
SetClientRole
切换为观众。
参数说明
参数 | 类型 | 描述 |
oldState | 之前的推流状态。 | |
newStat | 当前的推流状态。 | |
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 | 之前的订阅状态。 | |
newState | 当前的订阅状态。 | |
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 | 之前的推流状态。 | |
newState | 当前的推流状态。 | |
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 | 之前的订阅状态。 | |
newState | 当前的订阅状态。 | |
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 | 数据回调。 |
OnLocalVideoStats
本地视频统计信息(2s 触发一次)。
virtual void OnLocalVideoStats(const AliEngineLocalVideoStats& localVideoStats);
参数信息
参数 | 类型 | 描述 |
localVideoStats | const AliEngineLocalVideoStats& | 本地视频统计信息,包含比特率、帧率、码率等信息。 |
OnRemoteVideoStats
远端视频统计信息(2s 触发一次)。
virtual void OnRemoteVideoStats(const AliEngineRemoteVideoStats& remoteVideoStats);
参数信息
参数 | 类型 | 描述 |
remoteVideoStats | const AliEngineRemoteVideoStats& | 远端视频统计信息,包含远端用户 ID、帧率、卡顿等信息。 |
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* | 用户 ID,表示截的是哪个用户的视频流。 |
videoTrack | 截图视频的类型,例如相机流、屏幕共享流。 | |
buffer | void* | 成功则返回截图的图像数据,图像格式为RGBA;失败则返回 nullptr。 |
width | int | 截图宽度。 |
height | int | 截图高度。 |
success | bool | 截图是否成功。
|
OnLocalAudioStateChange
本地音频设备状态回调。
virtual void OnLocalAudioStateChange(AliEngineLocalAudioStateType state, const char* msg);
参数说明
参数 | 类型 | 描述 |
state | 当前音频设备的状态,例如启动中、已启动等。 | |
msg | const char* | 设备状态变化的描述信息。 |
onLocalVideoStateChanged
本地视频设备状态回调。
virtual void onLocalVideoStateChanged(AliEngineLocalVideoStateType state, const char* msg);
参数说明
参数 | 类型 | 描述 |
state | 当前视频设备的状态,例如启动中、已启动等。 | |
msg | const char* | 设备状态变化的描述信息。 |
OnRemoteUserSubscribedDataChannel
可以开始发送data channel消息回调。
virtual void OnRemoteUserSubscribedDataChannel(const char* uid);
当前接口是当远端用户订阅了 Data Channel 时触发的回调。此回调通知本地用户,当前指定的远端用户已准备好接收自定义消息,开发者可以在此时安全地调用 SendDataChannelMessage 向其发送数据。该回调是确保消息可靠传递的关键机制,避免在目标用户未订阅 Data Channel 时发送消息导致丢包或失败。
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户 ID。 |
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* | 发送用户 ID。 |
msg | const AliEngineDataChannelMsg& | data channel 消息。 |
OnCapturedAudioFrame
音频采集裸数据回调。
virtual bool OnCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;
当前回调用于获取当前设备采集的原始音频数据。默认关闭,为了获取该音频数据:
通过 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource开启当前回调。此外,config 参数可以设置获取音频数据的采样率和声道数、读写模式等。
调用 RegisterAudioFrameObserver 注册音频数据接收对象。
本接口支持设置采样率、声道数及读写模式。
参数说明
参数 | 类型 | 描述 |
audioRawData | 音频数据。 |
返回说明
true:成功。
false:失败。
OnProcessCapturedAudioFrame
3A后数据回调。
virtual bool OnProcessCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;
当前回调用于获取经过 3A 处理后的音频数据。默认关闭,为了获取该音频数据:
通过 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource开启当前回调。此外,config 参数可以设置获取音频数据的采样率和声道数、读写模式等。
调用 RegisterAudioFrameObserver 注册音频数据接收对象。
本接口支持设置采样率、声道数及读写模式。
参数说明
参数 | 类型 | 描述 |
audioRawData | 音频数据。 |
返回说明
true:成功。
false:失败。
OnPublishAudioFrame
推流数据回调。
virtual bool OnPublishAudioFrame(AliEngineAudioRawData audioRawData) = 0;
当前回调用于获取推流的音频数据。默认关闭,为了获取该音频数据:
通过 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource开启当前回调。此外,config 参数可以设置获取音频数据的采样率和声道数、读写模式等。
调用 RegisterAudioFrameObserver 注册音频数据接收对象。
本接口支持设置采样率、声道数,但只能设置为只读模式。
参数说明
参数 | 类型 | 描述 |
audioRawData | 音频数据。 |
返回说明
true:成功。
false:失败。
OnPlaybackAudioFrame
播放数据回调。
virtual bool OnPlaybackAudioFrame(AliEngineAudioRawData audioRawData) = 0;
当前回调用于获取播放的音频数据。默认关闭,为了获取该音频数据:
通过 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource开启当前回调。此外,config 参数可以设置获取音频数据的采样率和声道数、读写模式等。
调用 RegisterAudioFrameObserver 注册音频数据接收对象。
本接口支持设置采样率、声道数及读写模式。
调用限制
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常。
参数说明
参数 | 类型 | 描述 |
audioRawData | 音频数据。 |
返回说明
true:成功。
false:失败。
OnRemoteUserAudioFrame
远端拉流数据回调。
virtual bool OnRemoteUserAudioFrame(const char *uid, AliEngineAudioRawData audioRawData) = 0;
当前回调用于获取拉取的指定用户的远端音频数据。默认关闭,为了获取该音频数据:
通过 EnableAudioFrameObserver(true,audioSource,config) 中的 audioSource开启当前回调。此外,config 参数可以设置获取音频数据的采样率和声道数、读写模式等。
调用 RegisterAudioFrameObserver 注册音频数据接收对象。
本接口不支持设置采样率、声道数,但可以设置读写模式。
调用限制
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常。
参数说明
参数 | 类型 | 描述 |
uid | const char * | 远端用户 ID。 |
audioRawData | 音频数据。 |
返回说明
true:成功。
false:失败。
OnCaptureVideoSample
本地采集视频数据回调。
virtual bool OnCaptureVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;
当前接口是获取本地视频采集数据的回调,用于获取本地摄像头采集的原始视频帧(如 YUV 数据)。开发者可通过此回调实现自定义视频处理逻辑(如添加滤镜、水印、转码等),并决定是否将处理后的数据返回给 SDK 用于后续编码或渲染。如果你需要将处理后的视频发送给 SDK,请返回 true。
触发时机
成功调用RegisterVideoSampleObserver
注册视频数据观测器后,当 SDK 捕获到对应视频帧。
参数说明
参数 | 类型 | 描述 |
videoSource | 视频数据源。 | |
videoRawData | 视频裸数据。 |
返回说明
true: 需要写回SDK(只对I420和native(ios/mac)有效)。
false: 不需要写回SDK。
OnPreEncodeVideoSample
本地编码前视频数据回调。
virtual bool OnPreEncodeVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;
当前接口是获取本地视频编码前数据的回调,用于在 SDK 对视频帧进行编码前获取原始视频数据(如 YUV 格式)。开发者可通过此回调实现自定义处理逻辑(如添加水印、调整色彩、转码等),并决定是否将处理后的数据返回给 SDK 用于后续编码。
参数说明
参数 | 类型 | 描述 |
videoSource | 视频数据源。 | |
videoRawData | 视频数据。 |
返回说明
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 * | 远端用户 ID。 |
videoSource | 视频数据源。 | |
videoRawData | 视频裸数据。 |
返回说明
true: 需要写回SDK。
false: 不需要写回SDK。
GetVideoAlignment
视频输出宽度对齐方式。
virtual AliEngineVideoObserAlignment GetVideoAlignment();
返回说明
期望视频输出宽度对齐方式, 参考AliEngineVideoObserAlignment。
GetObservedFramePosition
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 | 表示回调用户音量信息数组,包含用户UID、语音状态以及音量,UID为0表示本地说话人。 | |
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 | 状态。 | |
errCode | 错误码。 |
OnPublishTaskStateChanged
旁路任务状态改变回调。
virtual void OnPublishTaskStateChanged(const char* streamUrl, AliEngineTrascodingPublishTaskStatus state){};
参数说明
参数 | 类型 | 描述 |
streamURL | const char* | 流地址。 |
state | 状态。 |
OnNetworkQualityChanged
网络质量变化回调。当网络质量发生变化时触发。
virtual void OnNetworkQualityChanged(const char *uid, AliEngineNetworkQuality upQuality, AliEngineNetworkQuality downQuality);
参数说明
参数 | 类型 | 描述 |
uid | char* | 网络质量发生变化的用户uid。 说明 uid为空时代表用户自己的网络质量发生变化。 |
upQuality | 上行网络质量等级。 | |
downQuality | 下行网络质量等级。 |
OnLastmileDetectResultWithQuality
通话前网络质量探测的回调,开始探测3s左右提供该回调。
virtual void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality);
该回调描述本地用户加入频道前的网络探测结果,用于粗略判断网络质量等级。调用StartLastmileDetect 后,SDK 会在大约 3s 左右返回该回调。
参数说明
参数 | 类型 | 描述 |
networkQuality | 网络质量等级。 |
OnLastmileDetectResultWithBandWidth
通话前网络质量探测的结果回调,探测30s左右提供该回调。
virtual void OnLastmileDetectResultWithBandWidth(int code, AliRTCSdk::AliEngineNetworkProbeResult networkQuality);
调用StartLastmileDetect 后,SDK 会在大约 30s 左右返回该回调,给出网络质量的详细结果。
参数说明
参数 | 类型 | 描述 |
code | int | 返回值:
|
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 | 音频类型,表示是哪一路的音频流首包发送。 | |
timeCost | int | 发送耗时,从入会开始到音频首包发送出去的耗时(单位:毫秒)。 |
OnFirstAudioPacketReceived
音频首包接收回调,在接收到远端首个音频数据包时触发此回调。
virtual void OnFirstAudioPacketReceived(const char* uid, AliEngineAudioTrack audioTrack, int timeCost)
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
audioTrack | 音频类型,表示是哪一路的音频流首包被接收到。 | |
timeCost | int | 接收耗时,从入会开始到音频首包被接收到的耗时(单位:毫秒)。 |
OnFirstVideoPacketSend
视频首包发送回调。
virtual void OnFirstVideoPacketSend(AliEngineVideoTrack videoTrack, int timeCost);
参数说明
参数 | 类型 | 描述 |
videoTrack | 视频类型,表示哪一路视频流的首包发送了,例如相机流、屏幕共享流。 | |
timeCost | int | 发送耗时,从入会开始到视频首包发送出去的耗时(单位:毫秒)。 |
OnFirstVideoPacketReceived
视频首包接收回调。
virtual void OnFirstVideoPacketReceived(const char* uid, AliEngineVideoTrack videoTrack, int timeCost);
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
videoTrack | 视频类型,表示哪一路视频流的首包被接收了,例如相机流、屏幕共享流。 | |
timeCost | int | 接收耗时,从入会开始到视频首包被接收的耗时(单位:毫秒)。 |
OnFirstRemoteAudioDecoded
已解码远端音频首帧回调。
virtual void OnFirstRemoteAudioDecoded(const char* uid, AliEngineAudioTrack audioTrack, int elapsed);
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
audioTrack | 音频类型,表示哪一路音频流完成解码首帧。 | |
elapsed | int | 从本地用户加入频道直至该回调触发的延迟, 单位为毫秒。 |
OnFirstRemoteVideoFrameDrawn
远端用户的第一帧视频帧显示时触发这个消息。
virtual void OnFirstRemoteVideoFrameDrawn(const char *uid, AliEngineVideoTrack videoTrack,
int width, int height, int elapsed);
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户ID。 |
videoTrack | 视频类型,表示哪一路视频流,例如相机流、屏幕共享流。 | |
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 | 当前播放状态。 | |
errorCode | 播放错误码。 |
OnAudioFileInfo
音频文件信息回调。
virtual void OnAudioFileInfo(AliEngineAudioFileInfo info, AliEngineAudioAccompanyErrorCode errorCode);
该回调在调用GetAudioFileInfo后触发,返回当前音频文件信息和错误码。
参数说明
参数 | 类型 | 描述 |
info | 音频文件信息。 | |
errorCode | 错误码。 |
OnRemoteAudioAccompanyStarted
远端用户伴奏播放开始回调。
virtual void OnRemoteAudioAccompanyStarted(const char* uid);
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户 ID。 |
OnRemoteAudioAccompanyFinished
远端用户伴奏播放结束回调。
virtual void OnRemoteAudioAccompanyFinished(const char* uid);
参数说明
参数 | 类型 | 描述 |
uid | const char* | 远端用户 ID。 |
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 | 回调数据源类型,包含采集后(0)、3A 后(1)、推流(2)、播放(3)、拉流的音频数据(5)。 注意:
| |
config | AliEngineAudioFrameObserverConfig | 音频回调参数设置,包含采样率、声道数、回调读写模式(只读、只写、读写)等。参数为 null 时默认为(48000,1, ReadOnly)。 |
RegisterAudioFrameObserver
注册音频数据回调。
virtual int RegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;
该方法用于注册音频回调数据的接收对象。
调用时机
当用户需要 SDK 触发 OnCapturedAudioFrame、OnProcessCapturedAudioFrame、OnPublishAudioFrame、OnPlaybackAudioFrame、OnRemoteUserAudioFrame 回调来获取各类音频数据时,需要调用此方法提供一个音频数据的接收对象。如果需要取消注册,请再次调用并传入 null。
调用限制
需要调用 EnableAudioFrameObserver开启具体AliEngineAudioSource的回调,否则当前传入的 oberver 无法获取数据。
参数说明
参数 | 类型 | 描述 |
observer | IAudioFrameObserver* | 回调callback对象指针 |
返回值
0成功,其他失败
UnRegisterAudioFrameObserver
取消订阅音频数据输出(IAliEngineMediaEngine接口)。
virtual void UnRegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;
参数说明
名称 | 类型 | 描述 |
observer | 回调callback对象指针 |
RegisterVideoSampleObserver
订阅视频数据输出。
virtual void RegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;
该接口用于注册视频数据的输出对象。如果要取消注册,请调用UnRegisterVideoSampleObserver
接口。
输出数据将通过 {@link IVideoFrameObserver} 回调返回
调用时机
如果你需要获取原始音频数据(如 YUV 或 RGBA 格式),可以调用此接口注册一个视频数据监测器来获取各阶段的视频数据。
相关回调
成功注册视频数据输出监测器后,SDK 会在捕捉到每个视频帧时,触发你实现的回调,请根据业务需要实现对应回调:
OnCaptureVideoSample:本地采集视频数据回调。
OnRemoteVideoSample:远端视频数据回调。
OnPreEncodeVideoSample:地编码前视频数据回调。
参数说明
名称 | 类型 | 描述 |
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 | 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}}")接口开启自定义消息通道,加入频道前后均可开启。消息可以是任意数据(例如文字、图片等)。
相关回调
当有远端用户开启订阅 data chanenl 数据时触发此回调 OnRemoteUserSubscribedDataChannel,收到此回调就可以向该用户发送 data channel 消息了。
当发送方成功开启自定义消息通道后,可以调用本接口发送自定义消息,接收方通过监听
OnDataChannelMessage
回调接收自定义的消息。
调用时机
远端用户调用SetParameter 开启了 EnableSubDataChannel接收 data channel 消息,本端收到 OnRemoteUserSubscribedDataChannel 回调后可调用。
调用限制
主播角色可以发送和接收消息,观众角色仅支持接收消息。
需要调用 SetParameter 开启自定义消息通道。
参数说明
名称 | 类型 | 描述 |
msg | const AliEngineDataChannelMsg& | 需要发送的消息。 |
返回说明
0:成功。
非 0:失败。
StartScreenShareByDesktopId
开始共享指定的桌面ID对应的屏幕流。
virtual int StartScreenShareByDesktopId(unsignedint desktopId, const AliEngineScreenShareConfig& config) = 0;
参数说明
名称 | 类型 | 描述 |
desktopId | unsignedint | 桌面ID。 |
config | 共享桌面的配置。 |
返回值
0:成功
其他:失败
StartScreenShareByScreenRegion
开始共享屏幕指定区域的视频流。
本方法仅适用于桌面共享,设置窗口共享请使用StartScreenShareByWindowId接口。
配置指定区域分享时,分享区域的最小分辨率为16 x 16。如果设置的区域小于最小分辨率,则将其重置为最小分辨率。
在配置指定区域分享时,如果设置的分享区域超出实际桌面分辨率,则将分享整个桌面。
关于虚拟屏幕坐标请参考虚拟屏幕坐标。
virtual int StartScreenShareByScreenRegion(
const AliEngineScreenShareRegion & screenRegion,
const AliEngineScreenShareConfig & config) = 0;
参数说明
名称 | 类型 | 描述 |
screenRegion | 指定要共享的屏幕相对于虚拟屏幕的位置。 | |
config | 屏幕共享配置。 |
返回值
0:成功
其他:失败
StartScreenShareByWindowId
根据用户指定的窗口ID,将其作为视频源进行视频流的共享与推送。
virtual int StartScreenShareByWindowId(unsigned int windowId,
const AliEngineScreenShareConfig & config) = 0;
参数说明
名称 | 类型 | 描述 |
windowId | int | 窗口ID。 |
config | 屏幕共享配置。 |
返回值
0:成功
其他:失败
StopScreenShare
停止屏幕共享。
virtual int StopScreenShare() = 0 ;
返回值
0:成功
其他:失败
ResumeScreenShare
重新开始屏幕共享。
virtual int ResumeScreenShare() = 0;
返回值
0:成功
其他:失败
PauseScreenShare
暂停屏幕共享。
virtual int PauseScreenShare() = 0;
返回值
0:成功
其他:失败
IsScreenSharePublished
查询是否已设置推送屏幕共享。
调用该方法可检查当前是否已经设置推送屏幕共享流。SDK默认设置不推送屏幕分享,如果需要推送屏幕共享,可以通过StartScreenShareByDesktopId,StartScreenShareByScreenRegion,StartScreenShareByWindowId接口主动开启屏幕共享。
virtual bool IsScreenSharePublished() = 0;
返回说明
true: 已设置推送。
false: 未设置推送。
UpdateScreenShareConfig
更新屏幕共享配置。
virtual int UpdateScreenShareConfig(const AliEngineScreenShareConfig & config) = 0;
参数说明
参数 | 类型 | 描述 |
config | 更新的屏幕共享配置。 |
返回值
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 | 共享源类型。 |
返回值
非空
AliEngineScreenSourceList
对象所获取的共享源类型列表对象。NULL表示失败。
GetCurrentScreenShareSourceId
获取当前共享的屏幕共享源ID。
virtual unsigned int GetCurrentScreenShareSourceId() = 0;
返回值
>=0表示当前共享的屏幕源ID。
<0表示失败。
GetCurrentScreenShareSourceType
根据指定的源获取对象列表。
virtual AliEngineScreenShareType GetCurrentScreenShareSourceType() = 0;
参数说明
参数 | 类型 | 描述 |
sourceType | 共享源类型。 |
返回值
非空的
AliEngineScreenSourceList
对象所获取的共享源类型列表对象。NULL表示失败。
GetDesktopRegion
根据指定的源ID和源标题获取桌面共享范围。
virtual int GetDesktopRegion(const String& sourceId, const String& sourceTitle, AliEngineScreenShareRegion & region) = 0;
参数说明
参数 | 类型 | 描述 |
sourceId | String | 共享源ID。 |
sourceTitle | String | 源标题。 |
region | 共享范围。 |
返回值
0:成功
其他:失败
SetScreenShareEncoderConfiguration
设置屏幕流视频编码属性。
virtual void SetScreenShareEncoderConfiguration(const AliEngineScreenShareEncoderConfiguration& config) = 0;
该方法用于设置屏幕流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。
该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用。
参数说明
参数 | 类型 | 描述 |
config | 预定义的屏幕共享编码属性。 |
所属接口
IAliEngineMediaEngine