用于管理一对一通话

Properties

maxCallNum: number = 1

最大通话数,默认值为1

当通话数到达最大通话数后,调用 call 接口呼出会失败,收到来电会自动拒绝

termWhenNetDisconnected: boolean = false

当音频接收网络状态为无网络时是否挂断,默认为不挂断

也就是 getAudioNetReceiveStatus 状态为 NetStatus.NET_STATUS_DISCONNECTED 时是否挂断

  • true: 挂断
  • false: 不挂断

Methods

  • 添加回调

    Parameters

    Returns any

  • 接听

    调用接口成功会收到 onCallItemUpdate 通知, 另外还有两种情况也会收到通知:1、若收到的是视频呼叫,而本端选择了音频接听 2、若此路通话不是活跃的,会将此路通话设为活跃通话。
    调用接口失败会收到 onCallItemRemove 通知

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象

    • video: boolean

      针对视频呼入可以选择以视频接听还是音频接听

      • true: 视频接听
      • false: 音频接听

    Returns boolean

    是否正常调用

    • true:正常执行调用流程
    • false:调用失败
  • 开启/关闭通话录音

    开启通话录音,需要保证没有在录音也没有在录制视频
    关闭通话录音,需要保证当前通话正在录音

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象

    • enable: boolean

      开启关闭录音

      • true: 开启录音
      • false: 关闭录音
    • filePath: string

      录音文件的本地保存路径,由用户自行指定,需精确到文件名,例如:/sdcard/emulated/0/audio.wav,请确保目录存在且可写。内部默认以 wav 格式录制

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知
  • 切换活跃通话

    调用此方法时,入参 JCCallItem 对象不是活跃的,则会收到 onCallItemUpdate 通知;若入参 JCCallItem 对象已是活跃的,则不会收到通知

    Parameters

    • item: JCCallItem

      需要变为活跃状态的 JCCallItem 对象

    Returns boolean

    是否正常调用

    • true:正常执行调用流程
    • false:调用失败
  • 发起一对一呼叫

    若发起的是音频呼叫,需要保证本地不存视频通话,并且本地通话数未达到最大通话数,最大通话数为:maxCallNum
    若发起的是视频呼叫,需要保证本地不存在通话。
    发起呼叫成功后,会收到 onCallItemAdd 通知

    以下两种情况会收到 onCallItemRemove 通知:

    • 本端发起视频呼叫时,对方已存在通话
    • 本端发起音频呼叫时,对方已存在视频通话

    Parameters

    • userId: string

      对方的用户标识,不能为空

    • video: boolean

      是否视频呼叫

      • true: 视频呼叫
      • false: 音频呼叫
    • callParam: CallParam

      通话参数对象,此参数可为空,详细定义见: CallParam

    Returns boolean

    是否正常调用

    • true:正常执行调用流程
    • false:调用失败

    在调用此接口时确保用户的登录状态为已登录

  • 销毁对象

    Returns any

  • 开启/关闭视频流发送

    通过 getUploadVideoStreamSelf 来决定开启还是关闭视频流的发送

    Parameters

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败

    用于视频通话中

  • 获得当前活跃的通话

    当上层收到 onCallItemAdd 回调后, 调用此方法可以获取到当前活跃的通话对象,可以使用该对象进行接听、渲染视频画面等操作。 若上层在收到 onCallItemAdd 回调前调用了此方法,将会返回 null。

    Returns JCCallItem

    • JCCallItem 对象:当前活跃的通话
    • null:当前没有活跃的通话
  • 获得通话对象列表

    maxCallNum > 1 时,可能存在多个音频通话对象

    Returns ArrayList<JCCallItem>

    通话对象列表

  • 获得当前的媒体参数

    Returns MediaConfig

    MediaConfig 媒体参数对象

  • 获得当前通话统计信息

    统计信息以Json字符串形式返回,其中包含 "Audio"、"Video"、"Mtp" 三个键值

    Returns string

    当前通话统计信息

  • 开启/取消呼叫保持

    开启呼叫保持后,通话将被挂起。内部会根据 getHold 来决定开启/取消呼叫保持

    • getHold 为 true,即呼叫保持状态时: 取消呼叫保持
    • getHold 为 false,即不是呼叫保持状态时: 开启呼叫保持

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知

    只针对音频,如果是视频通话则要上层处理视频逻辑

  • 开启/取消音频输入静音

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知

    从 v2.7.1 废弃。Juphoon 不建议你使用。如果你想开启/取消音频输入静音,请改用 muteMicrophone 方法

    开启后对端将听不到本端的声音。内部会根据 getMute 来决定开启/取消静音

    • getMute 为 true,即静音状态时: 取消静音
    • getMute 为 false,即不是静音状态时: 开启静音
  • 开启/取消音频输入静音

    开启后对端将听不到本端的声音

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中

    • mute: boolean

      是否静音

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知
  • 开启/取消音频输出静音

    开启后本端将听不到远端的声音

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中

    • mute: boolean

      是否静音

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知
  • 删除回调

    Parameters

    Returns any

  • 发送DTMF信息

    Parameters

    Returns boolean

    是否正常调用

    • true:正常执行调用流程
    • false:调用失败
  • 通过通话建立的通道发送数据

    此接口调用成功后,消息接收方会收到 onMessageReceive 回调,通过此回调可以获取消息的文本类型和文本内容

    Parameters

    • item: JCCallItem

      需要发送数据的 JCCallItem 对象

    • type: string

      文本消息类型,用户可以自定义,例如text,xml等

    • content: string

      文本内容

    Returns boolean

    是否正常调用

    • true:正常执行调用流程
    • false:调用失败
  • 设置麦克风输入声音线性放大值

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中

    • scale: number

      线性放大值,范围0-10。1表示原值,不放大不缩小。

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知
  • 挂断

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象

    • reason: number

      挂断原因,参见:CallReason.REASON_NONE

    • description: string

      挂断描述

    Returns boolean

    是否正常调用

  • 更新媒体参数

    可以通过该方法更新媒体参数以适应不同设备类型,比如视频发送/接收的宽高、音频/视频的最大最小码率等。需要在调用 call 接口发起呼叫前进行设置。

    Parameters

    Returns any

    如果此方法入参 MediaConfig 对象的 MediaConfig.mode 属性为 Mode.MODE_INTELLIGENT_HARDWARE,则会将音频输入/输出采样率设为 8000

  • 开启/关闭视频通话录制

    开启视频录制,需要保证 1、没有在录音 2、若是录制远端视频,要保证没有在录制远端视频,并且远端在上传视频流 3、若是录制本端视频,要保证没有在录制本端视频,并且本端在上传视频流。
    关闭视频录制,需要保证 1、若是关闭远端视频,要保证正在录制远端视频 2、若是关闭本端视频,要保证正在录制本端视频

    Parameters

    • item: JCCallItem

      JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象

    • enable: boolean

      是否开启视频通话录制

      • true: 开启
      • false: 关闭
    • remote: boolean

      是否录制远端视频源

      • true: 录制远端视频
      • false: 录制本端视频
    • width: number

      录制视频宽像素

    • height: number

      录制视频高像素

    • filePath: string

      录制视频文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:/sdcard/emulated/0/video.mp4。请确保目录存在且可写。

    • bothAudio: boolean

      是否录制两端音频

    • keyframe: number

      关键帧间隔 参数单位秒,参数要求大于0。如果同时存在多个录制,需要每个录制任务开始前分别调用此接口, mp4、avi格式默认60s一个关键帧,rtmp格式默认2s一个关键

      • true: 录制两端音频
      • false: 录制视频端音频。也就是说 remote 为 true 就录制远端音频,remote 为 false 录制本端音频。

    Returns boolean

    是否正常调用

    • true:正常执行调用流程,会收到 onCallItemUpdate 通知
    • false:调用失败,不会收到通知
  • 创建 JCCall 对象

    JCCall 的所有接口函数,如无特殊说明,都建议在主线程调用

    Parameters

    Returns JCCall

    JCCall 对象

    • 调用此方法创建 JCCall 对象后,期间没有调用过 destroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JCCall 对象
    • 调用此方法前确保 JCClient 已完成初始化,即 getState 方法获取的状态值不等于 ClientState.STATE_NOT_INIT

    "JCClient、JCMediaDevice、JCCallCallback 任意参数传空就会抛出异常"

  • 销毁 JCCall 对象

    该方法为同步调用,需要等待 JCCall 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCCall 的其它方法和回调。
    我们 不建议 在 JCSDK 的回调中调用此方法销毁 JCCall 对象,有可能会出现崩溃。
    如需在销毁后再次创建 JCCall 实例,需要等待 destroy 方法执行结束后再创建实例。

    Returns void