本文介绍的是音视频通话 API 在接入 iOS 中涉及的相关接口。
接口类型 | API | 说明 |
房间相关接口 | createRoom | 创建视频通话房间 |
joinRoom | 加入视频通话房间 | |
leaveRoom | 离开视频通话房间 | |
邀请应答接口 | inviteWith | 通知对方加入房间 |
replyWith | 回复邀请的应答操作 | |
发布订阅接口 | publish | 发布流 |
unpublish | 取消发布流 | |
subscribe | 订阅流 | |
unsubscribe | 取消订阅流 | |
摄像头接口 | startCameraPreviewUsingBackCamera | 开启相机 |
stopCameraPreview | 停止相机 | |
switchCamera | 切换相机摄像头 | |
静音接口 | muteMicrophone | 麦克风静音 |
muteRemoteAudio | 静音单个远端音频 | |
muteAllRemoteAudios | 静音所有远端音频 | |
muteRemoteVideo | 静音单个远端视频 | |
muteAllRemoteVideos | 静音所有远端视频 | |
截图接口 | snapshotForFeed | 截图 |
扬声器/听筒接口 | currentAudioPlayMode | 当前声音播放模式 |
switchAudioPlayModeTo | 切换听筒扬声器模式 | |
IM 接口 | sendMessage | 发送 IM 到单个用户 |
sendMessage | 发送 IM 到多个用户 | |
自定义推流接口 | createCustomVideoCapturer | 创建自定义推流类 |
destroyCustomVideoCapturer | 销毁自定义推流类 | |
屏幕共享接口 | isScreenCaptureSupported | 是否支持屏幕捕捉 |
isScreenCaptureStarted | 屏幕捕捉是否已启动 | |
startScreenCaptureWithParams | 开始屏幕捕捉 | |
stopScreenCapture | 结束屏幕捕捉 |
createRoom
声明:
(void)createRoom:(ARTVCCreateRoomParams*) params
说明:创建视频通话房间。
参数:
参数
类型
说明
是否可为空
uid
NSString*
用户 UID
NO
bizName
NSString*
主业务名称
NO
signature
NSString*
签名
NO
extraInfo
NSDictionary*
扩展参数
YES
返回值:无。
joinRoom
声明:
(void)joinRoom:(ARTVCJoinRoomParams*) params;
说明:加入视频通话房间。
参数:
参数
类型
说明
是否可为空
uid
NSString*
用户 UID
NO
bizName
NSString*
主业务名称
NO
signature
NSString*
签名
NO
roomId
NSString*
房间 ID
NO
rtoken
NSString*
房间 Token
NO
extraInfo
NSDictionary*
扩展参数
YES
返回值:无。
leaveRoom
声明:
(void)leaveRoom;
说明:离开视频通话房间。
参数:无。
返回值:无。
inviteWith
声明:
(void)inviteWith:(ARTVCInviteParams*)params complete:(ARTVCInviteCallback)complete;
说明:创建视频通话房间后,可调用该接口通知对方来加入房间。C2B 下可邀请 Web 坐席。该接口暂不支持在 C2C 模式下调用。
参数:
ARTVCInviteParams
参数
类型
说明
是否可为空
默认值
inviteId
NSString
邀请 ID,标识该次邀请。
NO
无
inviteeUid
NSString
对端的 UID
NO
无
inviteType
ARTVCInviteType
目前只支持 ARTVCInviteTypeWebsocket,被邀请方必须是 Web 端。
NO
无
audioEnable
BOOL
邀请对端开启音频。
NO
YES
videoEnable
BOOL
邀请对端开启视频。
NO
YES
timeout
int
超时设置
NO
60
extraInfo
NSDictionary*
扩展参数
YES
无
ARTVCInviteCallback
//error is nil means success,code see ARTVCInviteError typedef void (^ARTVCInviteCallback)(NSError*_Nullable error);
错误码定义
typedef NS_ENUM(int,ARTVCInviteError){ ARTVCInviteErrorBabParameters = 1, ARTVCInviteErrorNOtHaveValidRoom = 2, ARTVCInviteErrorPreviousInviteUnderProcessing = 3, ARTVCInviteErrorRequestFailed = 4, ARTVCInviteErrorTimeout = 5, ARTVCInviteErrorCanceledWhenLeaveRoom = 6, };
返回值:无。
replyWith
声明:
-(void)replyWith:(ARTVCReplyParams*)params complete:(ARTVCReplyCallback)complete;
说明:应答接口。
参数:
ARTVCReplyParams
参数
类型
说明
是否可为空
默认值
uid
NSString
用户 UID
NO
无
inviterUid
NSString
邀请者 UID
NO
无
bizName
NSString
主业务名称
NO
无
roomId
NSString
房间 ID
NO
无
replyType
ARTVCReplyType
应答类型
NO
无
audioEnable
BOOL
开启音频
NO
YES
videoEnable
BOOL
开启视频
NO
YES
timeout
int
超时设置
NO
60
extraInfo
NSDictionary*
扩展参数
YES
无
ARTVCReplyCallback
//error is nil means success,code see ARTVCReplyError typedef void (^ARTVCReplyCallback)(NSError*_Nullable error);
错误码定义
typedef NS_ENUM(int,ARTVCReplyError){ ARTVCReplyErrorBabParameters = 1, ARTVCReplyErrorPreviousReplyUnderProcessing = 3, ARTVCReplyErrorRequestFailed = 4, ARTVCReplyErrorTimeout = 5, ARTVCReplyErrorCanceledWhenLeaveRoom = 6, };
返回值:无。
publish
声明:
(void)publish:(ARTVCPublishConfig*)config
说明:发布流。
参数:ARTVCPublishConfig
参数
类型
说明
默认值
videoEnable
BOOL
是否推视频
YES
audioEnable
BOOL
是否推音频
YES
videoSource
ARTVCVideoSourceType
视频源类型
ARTVCVideoSourceType_Camera
videoProfile
ARTVCVideoProfileType
视频编码分辨率和 FPS。
ARTVCVideoProfileType640x36015Fps
videoCustomWidth
int
自定义视频宽,videoProfile 为 ARTVCVideoProfileType_Custom 时设置有效,不建议使用。
无
videoCustomHeight
int
自定义视频高,videoProfile 为 ARTVCVideoProfileType_Custom 时设置有效,不建议使用。
无
videoCustomFps
int
自定义 FPS,videoProfile 为 ARTVCVideoProfileType_Custom 时设置有效,不建议使用。
无
videoCustomBitrate
int
自定义码率,videoProfile 为 ARTVCVideoProfileType_Custom 时设置有效,不建议使用。
无
timeout
int
超时设置
60
tag
NSString
自定义流 tag。
VIDEO_SOURCE_CAMERA / VIDEO_SOURCE_SCREEN
返回值:无。
unpublish
声明:
-(void)unpublish:(ARTVCUnpublishConfig*)config
说明:取消发布流。
参数:
ARTVCUnpublishConfig
参数
类型
说明
feed
ARTVCFeed*
要取消发布的 Feed。
ARTVCFeed
参数
类型
说明
是否可为空
uid
NSString*
Feed 归属的用户 UID。
NO
userType
ARTVCParticipantType
用户类型,默认是普通用户,ARTVCParticipantTypeVirtualVod 表示点播服务对应的虚拟用户。
NO
feedId
NSString*
feed 的标识 ID
NO
tag
NSString*
feed 的标签类型
YES
返回值:无。
subscribe
声明:
(void)subscribe:(ARTVCSubscribeConfig*)config
说明:订阅流。
参数:
ARTVCSubscribeConfig
参数
类型
说明
是否可为空
feed
ARTVCFeed*
要订阅的 feed
NO
options
ARTVCSubscribeOptions*
订阅参数
NO
ARTVCSubscribeOptions
参数
类型
说明
是否可为空
receiveAudio
BOOL
是否订阅音频流
YES
receiveVideo
BOOL
是否订阅视频流
YES
timeout
int
超时设置
60
返回值:无。
unsubscribe
声明:
(void)unsubscribe:(ARTVCUnsubscribeConfig*)config
说明:取消订阅流。
参数:ARTVCUnsubscribeConfig
参数
类型
说明
feed
ARTVCFeed*
要取消订阅的 feed
返回值:无。
startCameraPreviewUsingBackCamera
声明:
(void)startCameraPreviewUsingBackCamera:(BOOL)usingBackCamera
说明:开启相机。
参数:usingBackCamera 为 YES 时使用后置摄像头,否则使用前置摄像头。
返回值:无。
stopCameraPreview
声明:
(void)stopCameraPreview
说明:停止使用相机。
参数:无。
返回值:无。
switchCamera
声明:
(void)switchCamera
说明:切换相机摄像头。
参数:无。
返回值:无。
muteMicrophone
声明:
(void)muteMicrophone:(BOOL)muted
说明:麦克风静音。
参数:muted 为 YES 时静音麦克风,否则取消静音麦克风。
返回值:无。
muteRemoteAudio
声明:
(void)muteRemoteAudio:(BOOL)muted forFeed:(ARTVCFeed*)feed
说明:对单个远端音频静音。
参数:静音传入 feed 中的音频流。muted 为 YES 时静音,否则取消静音。feed 不能为空。
返回值:无。
muteAllRemoteAudios
声明:
(void)muteAllRemoteAudios:(BOOL)muted
说明:静音所有远端音频。
参数:静音所有订阅 feed 中的音频流,muted 为 YES 时静音,否则取消静音。
返回值:无。
muteRemoteVideo
声明:
(void)muteRemoteVideo:(BOOL)muted forFeed:(ARTVCFeed*)feed
说明:静音单个远端视频。
参数:静音传入 feed 中的视频流。Muted 为 YES 时做静音处理,否则取消。Feed 不能为空。
返回值:无。
muteAllRemoteVideos
声明:
(void)muteAllRemoteVideos:(BOOL)muted
说明:静音所有远端视频。
参数:静音所有订阅 feed 中的视频流。muted 为 YES 时做静音处理,否则取消。
返回值:无。
snapshotForFeed
声明:
(void)snapshotForFeed:(ARTVCFeed*)feed complete:(void(^)(UIImage* image))complete
说明:截图接口。截取视频帧返回
.jpg
格式的 UIImage,支持截取本地和对端任意 feed 的视频帧数据信息。参数:
ARTVCFeed
参数
类型
说明
是否可为空
uid
NSString*
Feed 归属的用户 UID
NO
userType
ARTVCParticipantType
用户类型,默认是普通用户,ARTVCParticipantTypeVirtualVod 表示点播服务对应的虚拟用户。
NO
feedId
NSString*
feed 的标识 ID
NO
tag
NSString*
feed 的标签类型
YES
complete
参数
类型
说明
是否可为空
complete
ARTVCIMCallback
截图图片回调。若为空表示截图失败。
YES
返回值:无。
currentAudioPlayMode
声明:
(ARTVCAudioPlayMode)currentAudioPlayMode
说明:当前声音的播放模式。
参数:无。
返回值:无。
switchAudioPlayModeTo
声明:
(void)switchAudioPlayModeTo:(ARTVCAudioPlayMode)audioPlayMode complete:(void (^_Nullable)(NSError*_Nullable error))callback
说明:切换听筒扬声器模式。耳机模式下不作处理。
参数:
ARTVCAudioPlayMode
/** * 声音播放模式 */ typedef NS_ENUM(NSUInteger,ARTVCAudioPlayMode) { ARTVCAudioPlayModeInit = 0, //初始化状态 ARTVCAudioPlayModeReceiver, //听筒 ARTVCAudioPlayModeSpeaker, //扬声器 ARTVCAudioPlayModeHeadphone, //耳机 ARTVCAudioPlayModeBluetooth //蓝牙设备 };
callback 回调解释:当 error 为空表示切换成功,否则切换失败。
返回值:无。
sendMessage
声明:
(void)sendMessage:(ARTVCIMMessage*)message toPariticipant:(NSString*)pariticipant complete:(ARTVCIMCallback)complete
说明:发送 IM 到单个用户。
参数:
参数
类型
说明
是否可为空
message
ARTVCIMMessage*
IM 消息
NO
pariticipant
NSString*
用户 UID
NO
complete
ARTVCIMCallback
消息发送结果回调
YES
ARTVCIMMessage
参数
类型
说明
是否可为空
msg
NSString*
消息内容
NO
msgId
NSUInteger
消息 ID
YES
timestamp
NSTimeInterval
消息时间戳
YES
ARTVCIMCallback
//error is nil means success typedef void (^ARTVCIMCallback)(NSError* error);
返回值:无。
sendMessage
声明:
(void)sendMessage:(ARTVCIMMessage*)message toPariticipants:(NSArray<NSString*>*)pariticipants complete:(ARTVCIMCallback)complete
说明:发送 IM 到多个用户。
参数:
参数
类型
说明
是否可为空
message
ARTVCIMMessage *
IM 消息
NO
pariticipants
NSArray<NSString>
用户 UID 数组
NO
complete
ARTVCIMCallback
消息发送结果回调
YES
返回值:无。
createCustomVideoCapturer
声明:
-(ARTVCCustomVideoCapturer*)createCustomVideoCapturer:(ARTVCCreateCustomVideoCaputurerParams*)params;
说明:创建自定义推流类。
参数:
参数
类型
说明
是否可为空
params
ARTVCCreateCustomVideoCaputurerParams*
创建自定义推流类参数
NO
ARTVCCreateCustomVideoCaputurerParams 定义:
参数
类型
说明
是否可为空
provideRenderView
BOOL
是否需要提供渲染 view
NO
返回值:无。
destroyCustomVideoCapturer
声明:
-(void)destroyCustomVideoCapturer;
说明:销毁自定义推流类。
参数:无。
返回值:无。
isScreenCaptureSupported
声明:
-(BOOL)isScreenCaptureSupported;
说明:是否支持屏幕捕捉,需注意 iOS11 以及以上才支持。
参数:无。
返回值:返回值为 YES 时表示支持屏幕捕捉,返回值为 NO 时表示不支持屏幕捕捉。
isScreenCaptureStarted
声明:
-(BOOL)isScreenCaptureStarted;
说明:屏幕捕捉是否已启动。
参数:无。
返回值:无。
startScreenCaptureWithParams
声明:
-(void)startScreenCaptureWithParams:(ARTVCCreateScreenCaputurerParams*)params complete:(ARTVCErrorCallback)callback;
说明:开始屏幕捕捉。
参数:
参数
类型
说明
是否可为空
params
ARTVCCreateCustomVideoCaputurerParams*
开始屏幕捕捉参数
NO
callback
ARTVCErrorCallback
开始屏幕捕捉结果回调
YES
ARTVCCreateScreenCaputurerParams 定义:
参数
类型
说明
是否可为空
provideRenderView
BOOL
是否需要提供渲染 view
NO
返回值:无。
stopScreenCapture
声明:
-(void)stopScreenCapture;
说明:结束屏幕捕捉。
参数:无。
返回值:无。