#include <JCCall.h>

Public 成员函数

virtual bool call (const char *userId, bool video, JCCallParam *callParam)=0
 
virtual bool term (JCCallItem *item, JCCallReason reason, const char *description)=0
 
virtual bool answer (JCCallItem *item, bool video)=0
 
virtual bool mute (JCCallItem *item)=0
 
virtual bool muteSpeaker (JCCallItem *item, bool mute)=0
 
virtual bool muteMicrophone (JCCallItem *item, bool mute)=0
 
virtual bool hold (JCCallItem *item)=0
 
virtual bool audioRecord (JCCallItem *item, bool enable, const char *filePath)=0
 
virtual bool videoRecord (JCCallItem *item, bool enable, bool remote, int width, int height, const char *filePath, bool bothAudio, int keyframe)=0
 
virtual bool becomeActive (JCCallItem *item)=0
 
virtual bool enableUploadVideoStream (JCCallItem *item)=0
 
virtual std::list< JCCallItem * > * getCallItems ()=0
 
virtual JCCallItemgetActiveCallItem ()=0
 
virtual bool sendMessage (JCCallItem *item, const char *type, const char *content)=0
 
virtual const char * getStatistics ()=0
 
virtual void updateMediaConfig (JCCallMediaConfig mediaConfig)=0
 
virtual JCCallMediaConfig getMediaConfig ()=0
 
virtual bool sendDtmf (JCCallItem *item, JCCallDtmfValue value)=0
 

Public 属性

unsigned int maxCallNum
 
bool termWhenNetDisconnected
 

详细描述

用于管理一对一通话

成员函数说明

◆ answer()

virtual bool JCCall::answer ( JCCallItem item,
bool  video 
)
pure virtual

接听

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

参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象
video针对视频呼入可以选择以视频接听还是音频接听
  • true: 视频接听
  • false: 音频接听
返回
是否正常调用
  • true:正常执行调用流程
  • false:调用失败

◆ audioRecord()

virtual bool JCCall::audioRecord ( JCCallItem item,
bool  enable,
const char *  filePath 
)
pure virtual

开启/关闭通话录音

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

参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象
enable开启关闭录音
  • true: 开启录音
  • false: 关闭录音
filePath录音文件的本地保存路径,由用户自行指定,需精确到文件名,例如:C:\Users\86189\Documents\Juphoon\audiorecord\1600422483.wav。
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败,不会收到通知

◆ becomeActive()

virtual bool JCCall::becomeActive ( JCCallItem item)
pure virtual

切换活跃通话

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

参数
item需要变为活跃状态的 JCCallItem 对象
返回
是否正常调用
  • true:正常执行调用流程
  • false:调用失败

◆ call()

virtual bool JCCall::call ( const char *  userId,
bool  video,
JCCallParam callParam 
)
pure virtual

发起一对一呼叫

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

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

  • 本端发起视频呼叫时,对方已存在通话
  • 本端发起音频呼叫时,对方已存在视频通话
注解
在调用此接口时确保用户的登录状态为已登录
参数
userId对方的用户标识,不能为空
video是否视频呼叫
  • true: 视频呼叫
  • false: 音频呼叫
callParam通话参数对象,此参数可为空,详细定义见: JCCallParam
返回
是否正常调用
  • true:正常执行调用流程
  • false:调用失败

◆ enableUploadVideoStream()

virtual bool JCCall::enableUploadVideoStream ( JCCallItem item)
pure virtual

开启/关闭视频流发送

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

注解
用于视频通话中
参数
itemJCCallItem 对象
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败

◆ getActiveCallItem()

virtual JCCallItem * JCCall::getActiveCallItem ( )
pure virtual

获得当前活跃的通话

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

返回
  • JCCallItem 对象:当前活跃的通话
  • null:当前没有活跃的通话

◆ getCallItems()

virtual std::list< JCCallItem * > * JCCall::getCallItems ( )
pure virtual

获得通话对象列表

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

返回
通话对象列表

◆ getMediaConfig()

virtual JCCallMediaConfig JCCall::getMediaConfig ( )
pure virtual

获得当前的媒体参数

返回
JCCallMediaConfig 媒体参数对象

◆ getStatistics()

virtual const char * JCCall::getStatistics ( )
pure virtual

获得当前通话统计信息

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

返回
当前通话统计信息

◆ hold()

virtual bool JCCall::hold ( JCCallItem item)
pure virtual

开启/取消呼叫保持

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

  • getHold 为 true,即呼叫保持状态时: 取消呼叫保持
  • getHold 为 false,即不是呼叫保持状态时: 开启呼叫保持
注解
只针对音频,如果是视频通话则要上层处理视频逻辑
参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败,不会收到通知

◆ mute()

virtual bool JCCall::mute ( JCCallItem item)
pure virtual

开启/取消音频输入静音

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

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

  • getMute 为 true,即静音状态时: 取消静音
  • getMute 为 false,即不是静音状态时: 开启静音
参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败,不会收到通知

◆ muteMicrophone()

virtual bool JCCall::muteMicrophone ( JCCallItem item,
bool  mute 
)
pure virtual

开启/取消音频输入静音

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

参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中
mute是否静音
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败,不会收到通知

◆ muteSpeaker()

virtual bool JCCall::muteSpeaker ( JCCallItem item,
bool  mute 
)
pure virtual

开启/取消音频输出静音

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

参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中
mute是否静音
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败,不会收到通知

◆ sendDtmf()

virtual bool JCCall::sendDtmf ( JCCallItem item,
JCCallDtmfValue  value 
)
pure virtual

发送DTMF信息

参数
item需要发送数据的 JCCallItem 对象
valueDTMF值
返回
是否正常调用
  • true:正常执行调用流程
  • false:调用失败

◆ sendMessage()

virtual bool JCCall::sendMessage ( JCCallItem item,
const char *  type,
const char *  content 
)
pure virtual

通过通话建立的通道发送数据

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

参数
item需要发送数据的 JCCallItem 对象
type文本消息类型,用户可以自定义,例如text,xml等
content文本内容
返回
是否正常调用
  • true:正常执行调用流程
  • false:调用失败

◆ term()

virtual bool JCCall::term ( JCCallItem item,
JCCallReason  reason,
const char *  description 
)
pure virtual

挂断

参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象
reason挂断原因
description挂断描述
返回
是否正常调用

◆ updateMediaConfig()

virtual void JCCall::updateMediaConfig ( JCCallMediaConfig  mediaConfig)
pure virtual

更新媒体参数

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

参数
mediaConfigJCCallMediaConfig 媒体参数对象,通过 generateByMode 方法创建

◆ videoRecord()

virtual bool JCCall::videoRecord ( JCCallItem item,
bool  enable,
bool  remote,
int  width,
int  height,
const char *  filePath,
bool  bothAudio,
int  keyframe 
)
pure virtual

开启/关闭视频通话录制

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

参数
itemJCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象
enable是否开启视频通话录制
  • true: 开启
  • false: 关闭
remote是否录制远端视频源
  • true: 录制远端视频
  • false: 录制本端视频
width录制视频宽像素
height录制视频高像素
filePath录制视频文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:C:\Users\86189\Documents\Juphoon\videoRecord\1600422531.mp4。
bothAudio是否录制两端音频
  • true: 录制两端音频
  • false: 录制视频端音频。也就是说 remote 为 true 就录制远端音频,remote 为 false 录制本端音频。
keyframe关键帧间隔,参数单位秒,参数要求大于0.如果同时存在多个录制,需要每个录制任务开始前分别调用此接口,mp4、avi格式默认60s一个关键帧,rtmp格式默认2s一个关键帧
返回
是否正常调用
  • true:正常执行调用流程,会收到 onCallItemUpdate 通知
  • false:调用失败,不会收到通知

类成员变量说明

◆ maxCallNum

unsigned int JCCall::maxCallNum

最大通话数,默认值为1

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

◆ termWhenNetDisconnected

bool JCCall::termWhenNetDisconnected

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

也就是 getAudioNetReceiveStatus 状态为 JCCallNetStateDisconnected 时是否挂断

  • true: 挂断
  • false: 不挂断

该类的文档由以下文件生成:
最后更新时间: 2023/3/13 14:46:40