公共接口

本文介绍的是音视频通话 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;

  • 说明:结束屏幕捕捉。

  • 参数:无。

  • 返回值:无。