本文档为您介绍了iOS SDK和Mac SDK的AliRtcEngine接口详情。

目录

基础接口

API 描述 以上版本支持
setH5CompatibleMode 设置H5兼容模式。 1.1
getH5CompatibleMode 检查当前是否兼容H5。 1.1
sharedInstance 创建AliRtcEngine实例(同一时间只会存在一个实例)。 1.1
destroy 销毁SDK。 1.1

频道相关接口

API 描述 以上版本支持
setAutoPublish 设置是否自动发布,是否自动订阅。 1.1
joinChannel 加入频道。 1.1
leaveChannel 离开频道。 1.1
isInCall 检查当前是否在频道中。 1.1

发布相关接口

API 描述 以上版本支持
isAutoPublish 查询当前是否为自动发布模式。 1.1
configLocalCameraPublish 设置是否允许发布相机流。 1.1
isLocalCameraPublishEnabled 查询当前是否允许发布相机流。 1.1
configLocalScreenPublish 设置是否允许发布屏幕流(仅Mac)。 1.1
isLocalScreenPublishEnabled 查询当前是否允许发布屏幕流(仅Mac)。 1.1
configLocalAudioPublish 设置是否允许发布音频流。 1.1
isLocalAudioPublishEnabled 查询当前是否允许发布音频流。 1.1
configLocalSimulcast 是否允许发布次要视频流。 1.1
isLocalSimulcastEnabled 查询当前是否允许发布次要视频流。 1.1
publish 手动发布视频和音频流。 1.1

订阅相关接口

API 描述 以上版本支持
isAutoSubscribe 查询当前是否为自动订阅模式。 1.1
configRemoteCameraTrack 设置是否订阅远端相机流。 1.1
configRemoteScreenTrack 设置是否订阅远端屏幕流。 1.1
configRemoteAudio 设置是否订阅远端音频流。 1.1
subscribe 手动订阅视频和音频流。 1.1

视频相关接口

API 描述 以上版本支持
setVideoProfile 设置视频流的参数。 1.1
setLocalViewConfig 为本地预览设置渲染窗口以及绘制参数。 1.1
muteLocalCamera 设置是否停止发布本地视频流。 1.1
setRemoteViewConfig 为远端的视频设置渲染窗口以及绘制参数。 1.1
getCameraList 获取摄像头列表(仅Mac)。 1.1
getCurrentCamera 获取当前使用的摄像头名称(仅Mac)。 1.1
setCurrentCamera 选择摄像头(仅Mac)。 1.1
switchCamera 切换前后摄像头(仅iOS)。 1.1
setCameraZoom 设置摄像头参数(仅iOS)。 1.1
isCameraOn 检查摄像头是否打开(仅iOS)。 1.1
isCameraFocusPointSupported 摄像头是否支持手动聚焦(仅iOS)。 1.14
isCameraExposurePointSupported 摄像头是否支持设置曝光区域(仅iOS)。 1.14
setCameraFocusPoint 设置摄像头手动聚焦(仅iOS)。 1.14
setCameraExposurePoint 设置摄像头曝光点(仅iOS)。 1.14
unSubscribeVideoData 取消订阅视频数据(仅iOS)。 1.14
subscribeVideoPreprocessData 订阅采集视频前处理裸数据(仅iOS)。 1.14
unSubscribeVideoPreprocessData 取消采集订阅前处理裸数据(仅iOS)。 1.14
enableHighDefinitionPreview 是否允许高清预览,默认打开(仅iOS)。 1.14

音频相关接口

API 描述 以上版本支持
setAudioOnlyMode 设置是否为纯音频模式还是音视频模式。 1.1
isAudioOnly 查询当前是否为纯音频模式。 1.1
muteLocalMic 设置是否停止发布本地音频。 1.1
muteRemoteAudioPlaying 设置是否停止播放远端音频流。 1.1
enableSpeakerphone 切换听筒、扬声器输出(仅iOS)。 1.1
getAudioCaptures 获取音频采集设备列表(仅Mac)。 1.1
getCurrentAudioCapture 获取当前使用的音频采集设备名称(仅Mac)。 1.1
setCurrentAudioCapture 选择音频采集设备(仅Mac)。 1.1
getAudioRenderers 获取音频播放设备列表(仅Mac)。 1.1
getCurrentAudioRenderer 获取当前使用的音频播放设备(仅Mac)。 1.1
setCurrentAudioRenderer 选择音频播放设备(仅Mac)。 1.1
startAudioCapture 开启音频采集。 1.11
stopAudioCapture 关闭音频采集。 1.11
startAudioPlayer 开启音频播放。 1.11
stopAudioPlayer 关闭音频播放。 1.11

预览接口

API 描述 以上版本支持
startPreview 开始本地预览。 1.1
stopPreview 停止本地预览。 1.1

远端用户查询接口

API 描述 以上版本支持
getOnlineRemoteUsers 获取远端在线用户列表。 1.1
getUserInfo 查询远端用户信息。 1.1
isUserOnline 查询用户是否在线。 1.1
getMediaInfoWithUserId 获取当前的媒体流信息。 1.9

其他接口

API 描述 以上版本支持
setLogLevel 设置log级别。 1.1
getSdkVersion 获取SDK版本号。 1.1

接口详情

  • setH5CompatibleMode:设置H5兼容模式,当前版本不支持在创建SDK实例之后更改H5兼容模式,必须在创建实例之前就调用此方法,默认不兼容H5。

    + (void)setH5CompatibleMode:(BOOL)comp;

    参数:

    参数 类型 描述
    comp BOOL YES为兼容H5模式,NO为不兼容H5。
  • getH5CompatibleMode:检查当前是否兼容H5,返回YES标识兼容H5,NO表示不兼容H5。

    + (BOOL)getH5CompatibleMode;
  • sharedInstance::创建AliRtcEngine实例(同一时间只会存在一个实例)。

    + (instancetype)sharedInstance:(id<AliRtcEngineDelegate>)delegate extras:(NSString *)extras;

    参数:

    参数 类型 描述
    delegate AliRtcEngineDelegate类型的代理 监听回调的代理。
    extras NSString * SDK初始化配置,目前请使用@””。
  • destroy:销毁SDK,在所有操作结束之后调用。

    + (void)destroy;
  • setAutoPublish:设置是否自动发布,是否自动订阅。默认是自动发布和订阅,必须在joinChannel之前设置。

    - (int)setAutoPublish:(BOOL)autoPub withAutoSubscribe:(BOOL)autoSub;

    参数:

    参数 类型 描述
    autoPub BOOL YES表示自动发布;NO表示手动发布。
    autoSub BOOL YES表示自动订阅;NO表示手动订阅。
  • joinChannel:加入频道。加入频道成功后,如果中途需要加入其他频道,必须先调用leaveChannel离开当前频道;如果加入频道失败,需要重试时,无需先调用leaveChannel。

    - (void)joinChannel:(AliRtcAuthInfo *)authInfo name:(NSString *)userName onResult:(void(^)(NSInteger errCode))onResult;

    参数:

    参数 类型 描述
    authInfo AliRtcAuthInfo * 鉴权信息,从App Server下发,APP Server通过API获取。
    userName NSString * 用户的显示名称,不是uid
    onResult void(^)(NSInteger errCode) 当joinChannel执行结束后回调。
  • leaveChannel:离开频道。离开频道时,AliRtcEngine实例会被销毁,如需继续joinChannel等操作,需要先重新调用sharedInstance初始化AliRtcEngine实例。

    - (void)leaveChannel;
  • isInCall:检查当前是否在频道中,返回YES表示在频道中,NO表示不在频道中。

    - (BOOL)isInCall;
  • isAutoPublish:查询当前是否为自动发布模式,返回YES为自动发布,NO为手动发布。

    - (BOOL)isAutoPublish;
  • configLocalCameraPublish:设置是否允许发布相机流。默认为允许发布相机流,手动发布时,需要调用publish才能生效。

    - (void)configLocalCameraPublish:(BOOL)enable;

    参数:

    参数 类型 描述
    enable BOOL YES为允许发布相机流;NO为不允许。
  • isLocalCameraPublishEnabled:查询当前是否允许发布相机流,返回YES为允许,NO为不允许。

    - (BOOL)isLocalCameraPublishEnabled;
  • configLocalScreenPublish(仅Mac可用):设置是否允许发布屏幕流。默认为不允许发布屏幕流,手动发布时,需要调用publish才能生效。

    - (void)configLocalScreenPublish:(BOOL)enable;

    参数:

    参数 类型 描述
    enable BOOL YES为允许发布屏幕流,NO为不允许发布屏幕流。
  • isLocalScreenPublishEnabled(仅Mac可用):查询当前是否允许发布屏幕流,返回YES为允许,NO为不允许。

    - (BOOL)isLocalScreenPublishEnabled;
  • configLocalAudioPublish:设置是否允许发布音频流。默认为允许发布音频流,手动发布时,需要调用publish才能生效。

    - (void)configLocalAudioPublish:(BOOL)enable;

    参数:

    参数 类型 描述
    enable BOOL YES为允许发布音频流,NO为不允许。
  • isLocalAudioPublishEnabled:查询当前是否允许发布音频流,返回YES为允许,NO为不允许。

    - (BOOL)isLocalAudioPublishEnabled;
  • configLocalSimulcast:设置是否允许发布次要视频流。默认为允许发布次要视频流,手动发布时,需要调用publish才能生效。

    - (int)configLocalSimulcast:(BOOL)enabled forTrack:(AliRtcVideoTrack)track;

    参数:

    参数 类型 描述
    enabled BOOL YES表示允许发布次要流,NO表示不允许。
    track AliRtcVideoTrack 流类型,当前只支持相机流:AliVideoTrackCamera。
  • isLocalSimulcastEnabled:查询当前是否允许发布次要视频流,返回YES为允许,NO为不允许。

    - (BOOL)isLocalSimulcastEnabled;
  • publish:手动发布视频和音频流。

    • 调用publish的实际表现需要结合configLocalCameraPublish、configLocalAudioPublish、configLocalSimulcast等接口才能确定。
    • 根据您的具体业务需求配置上述3个接口的参数,以发布相应的视频和音频流 。
    • 发布和停止发布都是调用publish。
    • 如需停止发布,则需要上述3个配置接口的参数都置为NO,再调用publish。
    - (void)publish:(void (^)(int errCode))onResult;

    参数:

    参数 类型 描述
    onResult void (^)(int errCode) 当publish执行结束后回调。
  • isAutoSubscribe:查询当前是否为自动订阅模式,返回YES为自动订阅,NO为手动订阅。

    - (BOOL)isAutoSubscribe;
  • configRemoteCameraTrack:设置是否订阅远端相机流。默认为订阅大流,手动订阅时,需要调用subscribe才能生效。

    - (void)configRemoteCameraTrack:(NSString *)uid preferMaster:(BOOL)master enable:(BOOL)enable;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
    master BOOL 是否优先订阅大流。YES为订阅大流;NO为订阅次小流。
    enable BOOL YES为订阅远端相机流,NO为停止订阅远端相机流。
  • configRemoteScreenTrack:设置是否订阅远端屏幕流。默认为不订阅远端屏幕流,手动订阅时,需要调用subscribe才能生效。

    - (void)configRemoteScreenTrack:(NSString *)uid enable:(BOOL)enable;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
    enable BOOL YES为订阅远端屏幕流,NO为停止订阅远端屏幕流。
  • configRemoteAudio:设置是否订阅远端音频流。默认为订阅远端音频流,手动订阅时,需要调用subscribe才能生效。

    - (void)configRemoteAudio:(NSString *)uid enable:(BOOL)enable;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
    enable BOOL YES为订阅远端音频流,NO为停止订阅远端音频流。
  • subscribe:手动订阅视频和音频流。

    • 调用subscribe的实际表现需要结合configRemoteCameraTrack、configRemoteScreenTrack、configRemoteAudio等接口才能确定。
    • 根据您的具体业务需求配置上述3个接口的参数,以订阅相应的视频和音频流。
    • 订阅和停止订阅都是调用subscribe。
    • 如需停止订阅,则需要上述3个配置接口的参数都置为false,再调用subscribe。
    - (void)subscribe:(NSString *)uid onResult:(void (^)(NSString *uid, AliRtcVideoTrack vt, AliRtcAudioTrack at))onResult;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
    onResult void (^)(NSString *uid, AliRtcVideoTrack vt, AliRtcAudioTrack at) 当subscribe执行结束后回调。
  • setVideoProfile:设置视频流的参数。

    - (void)setVideoProfile:(AliRtcVideoProfile)profile forTrack:(AliRtcVideoTrack)track;

    参数:

    参数 类型 描述
    profile AliRtcVideoProfile 视频流参数。
    track AliRtcVideoTrack 需要设置的videoTrack类型。
  • setLocalViewConfig:为本地预览设置渲染窗口以及绘制参数。

    • 支持joinChannel之前和之后切换窗口。如果viewConfig为NULL或者其成员渲染视图为NULL,则停止渲染。
    • 如果在播放过程中需要重新设置渲染方式,请保持viewConfig中其他成员变量不变,仅修改renderMode。
    • viewConfig中渲染方式默认为AliRtcRenderModeAuto。
    - (int)setLocalViewConfig:(AliVideoCanvas *)viewConfig forTrack:(AliRtcVideoTrack)track;

    参数:

    参数 类型 描述
    viewConfig AliVideoCanvas * 渲染参数,包含渲染窗口以及渲染方式。
    track AliRtcVideoTrack 预览只允许AliVideoTrackCamera。
  • muteLocalCamera:设置是否停止发布本地视频流,不改变当前视频流的采集状态。

    - (int)muteLocalCamera:(BOOL)mute forTrack:(AliRtcVideoTrack)track;

    参数:

    参数 类型 描述
    mute BOOL YES表示停止发布视频流;NO表示恢复发布。
    track AliRtcVideoTrack 需要改变发布状态的videoTrack类型。
  • setRemoteViewConfig:为远端的视频设置渲染窗口以及绘制参数。

    • 支持joinChannel之前和之后切换窗口。如果canvas为NULL或者其成员view为NULL,则停止渲染相应的流。
    • 如果在播放过程中需要重新设置渲染方式,请保持canvas中其他成员变量不变,仅修改renderMode。
    • canvas中渲染方式默认为AliRtcRenderModeAuto。
    - (int)setRemoteViewConfig:(AliVideoCanvas *)canvas uid:(NSString *)uid forTrack:(AliRtcVideoTrack)track;

    参数:

    参数 类型 描述
    canvas AliVideoCanvas * 渲染参数,包含渲染窗口以及渲染方式。
    uid NSString * 用户ID,从App server获取的唯一标示符。
    track AliRtcVideoTrack 需要设置的videoTrack类型。
  • getCameraList(仅Mac可用):获取摄像头列表。

    - (NSArray<NSString *> *)getCameraList;
  • getCurrentCamera(仅Mac可用):获取当前使用的摄像头名称。

    - (NSString *)getCurrentCamera;
  • setCurrentCamera(仅Mac可用):选择摄像头。必须先调用getCameraList接口获取设备列表后再调用此接口设置。

    - (void)setCurrentCamera:(NSString *)camera;

    参数:

    参数 类型 描述
    camera NSString * 摄像头名称。
  • switchCamera(仅iOS可用):切换前后摄像头,返回0为切换成功,其他为切换失败

    - (int)switchCamera;
  • setCameraZoom(仅iOS可用):设置摄像头参数,返回0表示设置成功,其他表示设置失败。

     - (int)setCameraZoom:(float)zoom flash:(BOOL)flash autoFocus:(BOOL)autoFocus;

    参数:

    参数 类型 描述
    zoom float zoom变焦的级别。
    flash BOOL 是否打开闪光灯。
    autoFocus BOOL 是否打开自动对焦。
  • isCameraOn:检查摄像头是否打开,YES表示摄像头已打开,NO表示摄像头没有打开。

    - (BOOL)isCameraOn;
  • isCameraFocusPointSupported(仅iOS可用):摄像头是否支持手动聚焦。

    - (BOOL)isCameraFocusPointSupported;

    该方法返回YES表示支持,NO表示不支持。

  • isCameraExposurePointSupported(仅iOS可用):摄像头是否支持设置曝光区域。

    - (BOOL)isCameraExposurePointSupported;

    该方法返回YES表示支持,NO表示不支持。

  • setCameraFocusPoint(仅iOS可用):设置摄像头手动聚焦。

    - (int)setCameraFocusPoint:(CGPoint)point;

    参数:

    参数 类型 描述
    point CGPoint 聚焦点坐标。

    该方法返回0表示成功,其他表示失败。

  • setCameraExposurePoint(仅iOS可用):设置摄像头曝光点。

    - (int)setCameraExposurePoint:(CGPoint)point;

    参数:

    参数 类型 描述
    point CGPoint 曝光点坐标。

    该方法返回0表示成功,其他表示失败。

  • unSubscribeVideoData(仅iOS可用):取消订阅视频数据。

    - (void)unSubscribeVideoData:(NSString *)uid videoSource:(AliRtcVideoSource)videoSource;

    参数:

    参数 类型 描述
    uid NSString * 用户id。
    videoSource AliRtcVideoSource 视频流类型。
  • subscribeVideoPreprocessData(仅iOS可用):订阅采集视频前处理裸数据。

    - (void)subscribeVideoPreprocessData:(AliRtcVideoSource)videoSource;

    参数:

    参数 类型 描述
    videoSource AliRtcVideoSource 视频流类型。
  • unSubscribeVideoPreprocessData(仅iOS可用):取消采集订阅前处理裸数据。

    - (void)unSubscribeVideoPreprocessData:(AliRtcVideoSource)videoSource;

    参数:

    参数 类型 描述
    videoSource AliRtcVideoSource 视频流类型。
  • enableHighDefinitionPreview(仅iOS可用):是否允许高清预览,默认打开。

    说明 需要在开启预览和开启推流之前调用。
    - (BOOL)enableHighDefinitionPreview:(BOOL)enable;

    参数:

    参数 类型 描述
    enable BOOL YES表示允许,NO表示不允许。

    该方法返回0表示成功,其他表示失败。

  • setAudioOnlyMode:设置是否为纯音频模式还是音视频模式,返回0代表设置成功,其他代表设置失败。默认为音视频模式(非纯音频),必须在joinChannel之前设置。

    - (int)setAudioOnlyMode:(BOOL)audioOnly;

    参数:

    参数 类型 描述
    audioOnly BOOL YES表示只有音频发布和订阅;NO表示音视频都支持。
  • isAudioOnly:查询当前是否为纯音频模式,返回YES为纯音频,NO为音视频。

    - (BOOL)isAudioOnly;
  • muteLocalMic:设置是否停止发布本地音频,返回0表示设置成功,-1表示设置失败。不改变当前音频的采集状态。

    - (int)muteLocalMic:(BOOL)mute;

    参数:

    参数 类型 描述
    mute BOOL YES表示停止发布本地音频;NO表示恢复发布。
  • muteRemoteAudioPlaying:设置是否停止播放远端音频流,返回0表示设置成功,-1表示设置失败。

    - (int)muteRemoteAudioPlaying:(NSString *)uid mute:(BOOL)mute;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
    mute BOOL YES表示停止播放;NO表示恢复播放。
  • enableSpeakerphone(仅iOS可用):切换听筒、扬声器输出。

     - (int)enableSpeakerphone:(BOOL)enable;

    参数:

    参数 类型 描述
    enable BOOL YES为扬声器模式,NO为听筒模式。
  • getAudioCaptures(仅Mac可用):获取音频采集设备列表。

    - (NSArray<NSString *> *)getAudioCaptures;
  • getCurrentAudioCapture(仅Mac可用):获取当前使用的音频采集设备名称。

    - (NSString *)getCurrentAudioCapture;
  • setCurrentAudioCapture(仅Mac可用):选择音频采集设备。必须先调用getCurrentAudioCapture接口获取设备列表后再调用此接口设置。

    - (void)setCurrentAudioCapture:(NSString *)capture;

    参数:

    参数 类型 描述
    capture NSString * 音频采集设备名称。
  • getAudioRenderers(仅Mac可用):获取音频播放设备列表。

    - (NSArray<NSString *> *)getAudioRenderers;
  • getCurrentAudioRenderer(仅Mac可用):获取当前使用的音频播放设备。

    - (NSString *)getCurrentAudioRenderer;
  • setCurrentAudioRenderer(仅Mac可用):选择音频播放设备。必须先调用getAudioRenderers接口获取设备列表后再调用此接口设置。

    - (void)setCurrentAudioRenderer:(NSString *)renderer;

    参数:

    参数 类型 描述
    renderer NSString * 音频播放设备名称。
  • startAudioCapture:开启音频采集。您可以控制提前打开音频采集,如果不设置,SDK会在开始推流的时候打开音频采集。

    - (void)startAudioCapture;
  • stopAudioCapture:关闭音频采集。您可以控制关闭音频采集。

    - (void)stopAudioCapture;
  • startAudioPlayer:开启音频播放。您可以控制提前打开音频播放,如果不设置,SDK会在订阅成功的时候打开音频播放。

    - (void)startAudioPlayer;
  • stopAudioPlayer:关闭音频播放。您可以控制关闭音频播放。

    - (void)stopAudioPlayer;
  • startPreview:开始本地预览,可以在joinChannel之前就开启预览。

    - (int)startPreview;
  • stopPreview:停止本地预览。

    - (int)stopPreview;
  • getOnlineRemoteUsers:获取远端在线用户列表,返回用户ID列表。

    - (NSArray<NSString *> *)getOnlineRemoteUsers;
  • getUserInfo:查询远端用户信息。

    - (NSDictionary *)getUserInfo:(NSString *)uid;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
  • isUserOnline:查询用户是否在线,YES表示在线,NO表示不在线。

    - (BOOL)isUserOnline:(NSString *)uid;

    参数:

    参数 类型 描述
    uid NSString * 用户ID,从App server获取的唯一标示符。
  • getMediaInfoWithUserId: 获取当前的媒体流信息。返回key-value的json格式字符串。

    - (NSString *)getMediaInfoWithUserId:(NSString *)userId videoTrack:(AliRtcVideoTrack)videoTrack keys:(NSArray<NSString *> *)keys;

    参数:

    参数 类型 描述
    userId NSString * 需要查询的userId,self请赋值空字符串。
    videoTrack AliRtcVideoTrack 需要查询的媒体流类型。
    keys NSArray<NSString *> * 查询key值数组。
  • setLogLevel:设置log级别。

    - (void)setLogLevel:(AliRtcLogLevel)logLevel;

    参数:

    参数 类型 描述
    logLevel AliRtcLogLevel log级别。
  • getSdkVersion:获取SDK版本号。

    + (NSString *)getSdkVersion;