鸿蒙 CallPlus-v1.8.0
    Preparing search index...

    Interface RCCallPlusClient

    interface RCCallPlusClient {
        init(initOpts: ICallPlusInitOpts): void;
        createVideoConfigBuilder(): default;
        setVideoConfig(cfg: IVideoConfig): { code: number };
        createAudioConfigBuilder(): default;
        setAudioConfig(cfg: IAudioConfig): { code: number };
        createAndroidPushConfigBuilder(): default;
        setCallPlusEventListener(listener: ICallPlusEventListener): void;
        setStatusReportListener(listener: IStatusReportListener): void;
        setAudioListener(listener: any): void;
        startCamera(): Promise<{ code: number }>;
        stopCamera(): Promise<{ code: number }>;
        switchCamera(): Promise<{ code: number }>;
        setMicrophoneEnable(enable: boolean): Promise<{ code: number }>;
        startMicrophone(): Promise<{ code: number }>;
        stopMicrophone(): Promise<{ code: number }>;
        isMicrophoneEnabled(): boolean;
        enableSpeaker(enable: boolean): any;
        isSpeakerphoneEnabled(): boolean;
        setVideoView(
            list: { userId: string; videoElement: any; isTiny?: boolean }[],
        ): { code: number };
        removeVideoView(userIds: string[]): { code: number };
        setEncryptor(encryptor: number): void;
        setDecryptor(decryptor: number): void;
        startCall(
            userIds: string[],
            callType: RCCallPlusType,
            mediaType: RCCallPlusMediaType,
            pushConfig?: IRCCallPlusPushConfig,
            extra?: string,
        ): Promise<{ code: number; callId?: string }>;
        startCallWithParams(
            params: IRCCallPlusStartParams,
        ): Promise<
            { code: number; callId?: string; busyUsers?: RCCallPlusCallUser[] },
        >;
        joinMultiCall(callId: string): Promise<{ code: number }>;
        invite(
            userIds: string[],
            pushConfig?: IRCCallPlusPushConfig,
            extra?: string,
            syncData?: string,
        ): Promise<{ code: number; busyUsers?: RCCallPlusCallUser[] }>;
        accept(callId: string): Promise<{ code: number }>;
        hangup(
            callId?: string,
            pushConfig?: IRCCallPlusPushConfig,
            reason?: RCCallPlusReason,
        ): Promise<{ code: number }>;
        requestChangeMediaType(
            mediaType: AUDIO | AUDIO_VIDEO,
        ): Promise<{ code: number; transactionId?: string }>;
        cancelChangeMediaType(transactionId: string): Promise<{ code: number }>;
        replyChangeMediaType(
            transactionId: string,
            isAgree: boolean,
        ): Promise<{ code: number }>;
        getAvailableCallRecordsFromServer(): Promise<
            { code: number; records?: IRCCallPlusCallRecord[] },
        >;
        getCallRecords(
            startTimestamp: number,
            count: number,
            order: 0 | 1,
        ): Promise<{ code: number; result?: IRCCallPlusGetCallRecordRes }>;
        deleteCallRecordsFromServer(callIds: string[]): Promise<{ code: number }>;
        deleteAllCallRecordsFromServer(): Promise<{ code: number }>;
        getCurrentCallSession(): RCCallPlusSession;
        setAllRemoteAudioEnable(enable: boolean): Promise<{ code: number }>;
        setCustomExtendInfo(extendInfo: string): { code: number };
        getVersion(): string;
    }
    Index

    Methods

    • 初始化配置,建议全局配置一次,尽量避免重复调用。

      Parameters

      Returns void

    • 创建视频配置构建器

      Returns default

      RCVideoConfigBuilder 用于构造视频采集时的配置项,可以设置摄像头设备 id、帧率、分辨率等, 设置完需调 build 方法,最终在 setVideoConfig 后生效

    • 设置视频配置:分辨率、最大/最小码率、帧率等信息。需要通话建立前设置。

      Parameters

      Returns { code: number }

    • 创建音频配置构建器

      Returns default

      RCAudioConfigBuilder 用于构造音频采集时的配置项,可以设置麦克风设备 id 设置完需调 build 方法,最终在 setAudioConfig 后生效

    • 设置音频配置:码率

      Parameters

      Returns { code: number }

    • 创建安卓推送信息构建器

      Returns default

      RCCallPlusAndroidPushConfigBuilder 用于构造安卓推送信的配置项 设置完需调 build 方法获取设置的 androidPushConfig 数据 最终需把 androidPushConfig 传入 startCall、invite、hangup 方法的 pushConfig.androidConfig 中

    • 设置事件代理

      Parameters

      Returns void

      多次调用,后面设置会覆盖前面设置的通话事件监听

    • 设置通话质量数据监听

      Parameters

      • listener: IStatusReportListener

        类型为 IStatusReportListener,详细定义可参考 apiDoc

        RTC 音视频质量数据、音量上报接口

        • onSendPacketLoss: function
          • 上行丢包率及延迟信息回调,每秒回调一次

            Parameters

            • packetLostRate: number

              丢包率,0-100

            • delay: number

              发送端的网络延迟,单位毫秒

            Returns void

        • onReceivePacketLoss: function
          • 下行丢包率及延迟信息回调,每秒回调一次

            Parameters

            Returns void

      Returns void

      1. 多次调用,后面设置会覆盖前面设置的通话质量数据监听
      2. 回调频率为 1s 回调一次
    • 设置音频引擎监听

      Parameters

      • listener: any

        类型为 RCCallPlusAudioEngineListener,详细定义可参考 apiDoc

      Returns void

      1. 多次设置后,上一次设置 listener 会被覆盖
      2. 该监听主要用于音频采集相关事件通知
    • 开启摄像头

      Returns Promise<{ code: number }>

      code 返回是否设置成功

      视频通话建立后默认状态为关闭,需要主动调用接口打开。

    • 关闭摄像头

      Returns Promise<{ code: number }>

      code 返回是否设置成功

    • 切换摄像头功能,

      Returns Promise<{ code: number }>

      code 返回是否设置成功

      需要先调用 startCamera() 方法开启摄像头后,此方法才生效。

    • 开启/关闭麦克风。通话建立后默认开启。

      Parameters

      • enable: boolean

        true 开启,false 不开启

      Returns Promise<{ code: number }>

      code 返回是否设置成功

    • Returns Promise<{ code: number }>

      建议使用 setMicrophoneEnable 方法 开启麦克风

    • Returns Promise<{ code: number }>

      建议使用 setMicrophoneEnable 方法 停止麦克风

    • 获取麦克风开关状态

      Returns boolean

      麦克风是否启用

    • 开启/关闭扬声器、获取扬声器开关状态。通话建立后视频通话默认开启,音频通话默认关闭。

      Parameters

      • enable: boolean

        true 开启,false 关闭

      Returns any

    • 获取扬声器开关状态

      Returns boolean

      true 开启状态,false 关闭状态

    • 设置渲染视图

      Parameters

      • list: { userId: string; videoElement: any; isTiny?: boolean }[]

        为一个列表,可传入多个

      Returns { code: number }

      code 返回是否设置成功

      本地视频流和远端视频流都通过该接口设置。 设置本地视频流时,不区分大小流,isTiny 可以不传入。 设置远端视频流时,isTiny 传入 true 时,表示小流,传入 false 时,表示大流。切换时需要重新设置。

    • 删除渲染视图

      Parameters

      • userIds: string[]

        用户 id 列表

      Returns { code: number }

      code 返回是否删除成功

      不观看某个人的视频时,业务层通过传入对应的 userId 可以直接移除对应的 RCCallPlusVideoView 调 removeVideoView 方法,SDK 内部会停止接收对方的媒体传输

    • 设置音视频加密指针

      Parameters

      • encryptor: number

        Native 加密指针,RTCCustomEncryptorInterface 类型

      Returns void

      用于音视频流自定义加密功能

    • 设置音视频解密指针

      Parameters

      • decryptor: number

        Native 解密指针,RTCCustomDecryptorInterface 类型

      Returns void

      用于音视频流自定义解密功能

    • 发起呼叫

      Parameters

      • userIds: string[]

        被叫人员userId列表,单人呼叫仅需在数组中放置对方一人的 userId

      • callType: RCCallPlusType

        通话类型,单人呼叫或多人呼叫,单人呼叫时 userIds 长度只能为 1。

      • mediaType: RCCallPlusMediaType

        通话媒体类型,音频或者音视频

      • OptionalpushConfig: IRCCallPlusPushConfig

        可选参数,移动端推送信息

      • Optionalextra: string

        可选参数,附加信息,会透传给被呼叫方

      Returns Promise<{ code: number; callId?: string }>

      code 返回是否呼叫成功

      当发生网络断开或 IM 链接断开等情况导致请求失败时,该方法会根据 SDK 内部的策略进行重试。如果重试一直失败,最长等待时间约为60秒,然后返回失败

    • 发起呼叫

      Parameters

      Returns Promise<{ code: number; callId?: string; busyUsers?: RCCallPlusCallUser[] }>

      code 返回是否呼叫成功

      IRCCallPlusStartParams 是针对上述 startCall 参数扩展封装

    • 加入群组通话

      Parameters

      • callId: string

        通话 id

      Returns Promise<{ code: number }>

      code 返回是否加入成功

      只要能获取到群组通话的 id,无论是否被邀请过,都可以直接加入。 当发生网络断开或 IM 链接断开等情况导致请求失败时,该方法会根据 SDK 内部的策略进行重试。如果重试一直失败,最长等待时间约为60秒,然后返回失败

    • 通话中邀请他人

      Parameters

      • userIds: string[]

        被邀请人列表

      • OptionalpushConfig: IRCCallPlusPushConfig

        移动端推送信息

      • Optionalextra: string

        附加信息,会透传给被邀请方

      • OptionalsyncData: string

        定义通话同步数据,该数据与 extra 不同点,在于数据会被服务器存储,同时可通过 session.getSyncData() 获取数据不可超出 1024 Bytes

      Returns Promise<{ code: number; busyUsers?: RCCallPlusCallUser[] }>

      code 返回是否邀请成功

      对于单聊通话中邀请他人会导致通话类型变更为群组通话,对于群组通话属于过程中邀请新用户加入。

    • 接听通话

      Parameters

      • callId: string

        通话 id

      Returns Promise<{ code: number }>

      code 返回是否接听成功

      当发生网络断开或 IM 链接断开等情况导致请求失败时,该方法会根据 SDK 内部的策略进行重试。如果重试一直失败,最长等待时间约为60秒,然后返回失败

    • 挂断通话

      Parameters

      • OptionalcallId: string

        可选参数;当存在多个通话时,可通过该参数指定要挂断的通话;不传时 SDK 将挂断当前进行中的通话;

      • OptionalpushConfig: IRCCallPlusPushConfig

        可选参数,移动端推送信息

      • Optionalreason: RCCallPlusReason

        可选参数,指定挂断原因,非必要不填,不填时,SDK 会根据具体的业务场景自动选择挂断原因

      Returns Promise<{ code: number }>

      code 返回是否挂断成功

    • 通话中请求媒体类型切换请求

      Parameters

      Returns Promise<{ code: number; transactionId?: string }>

      transactionId 客户端和服务端交互的事务 id,在取消或应答媒体类型切换时当做参数使用

      1. 该接口为单聊接口
      2. 由音频切换到音视频,收到媒体类型切换结果通知后,不需要手动打开摄像头
      3. 由音视频切换到音频,收到媒体类型切换结果通知后,不需要手动关闭摄像头
    • 取消已经发起的媒体类型切换请求

      Parameters

      • transactionId: string

        transactionId: 事务 id,为调用接口 requestChangeMediaType 后,返回的 transactionId

      Returns Promise<{ code: number }>

      code 返回是否取消成功

      该接口为单聊接口 调用 requestChangeMediaType 接口后,可以使用该接口取消操作

    • 响应通话中媒体类型切换请求

      Parameters

      • transactionId: string

        事务 id,为 onReceivedChangeMediaTypeRequest 监听收到 transactionId 参数值

      • isAgree: boolean

        是否同意

      Returns Promise<{ code: number }>

      code 返回是否应答成功

      该接口为单聊接口

    • 从服务器获取当前用户未结束的通话记录

      Returns Promise<{ code: number; records?: IRCCallPlusCallRecord[] }>

      records 未结束的通话记录

    • 获取当前用户通话记录

      Parameters

      • startTimestamp: number

        起始时间戳, 首次获取可传 -1,倒序时,返回最新的通话记录,正序时,返回最早的通话记录 order 为正序时,返回大于此时间戳的通话记录 order 为倒序时,返回小于此时间戳的通话记录

      • count: number

        每次获取的数量

      • order: 0 | 1

        正序或倒序获取,默认为正序 0 为正序,向开始时间戳之后查询 1 为倒序,向开始时间戳之前查询

      Returns Promise<{ code: number; result?: IRCCallPlusGetCallRecordRes }>

      result.hasMore 是否有更多通话记录

    • 批量删除当前用户通话记录

      Parameters

      • callIds: string[]

        需要删除通话记录的通话 id 列表

      Returns Promise<{ code: number }>

      code 返回是否删除成功

    • 删除当前用户所有通话记录

      Returns Promise<{ code: number }>

      code 返回是否删除成功

    • 获取当前进行中的通话

      Returns RCCallPlusSession

      如果当前正在通话返回 RCCallPlusSession 对象,未进行通话则返回 null

    • 设置是否静音所有远端用户音频流

      Parameters

      • enable: boolean

        为 true 时,False 为静音,True 为 非静音

      Returns Promise<{ code: number }>

      code 返回是否设置成功

      静音操作为不播放远端用户音频流,媒体通道还在收音频数据

    • 允许业务层设置自定义扩展信息,

      Parameters

      • extendInfo: string

      Returns { code: number }

      code 返回是否设置成功

      的此接口允许在任意时机调用,sdk内部会在下次做发布或是订阅操作时读取设置的此字段透传给 media server。 业务侧要控制好info的设置时机,失效的信息需要及时通过设置空值还原。

    • 获取 SDK 版本信息

      Returns string

      SDK 版本号