构造函数 | |
(bool) | - call:callParam: |
(bool) | - term:reason:description: |
(bool) | - answer: |
(bool) | - mute: |
(bool) | - muteMicrophone:mute: |
(bool) | - muteSpeaker:mute: |
(bool) | - hold: |
(bool) | - audioRecord:enable:filePath: |
(bool) | - becomeActive: |
(bool) | - sendMessage:type:content: |
(NSString *__nullable) | - getStatistics |
(JCCallItem *__nullable) | - getActiveCallItem |
(bool) | - sendDtmf:value: |
类方法 | |
(JCCall *__nullable) | + create:mediaDevice:callback: |
(void) | + destroy |
属性 | |
NSArray *__nullable | callItems |
int | maxCallNum |
bool | termWhenNetDisconnected |
JCCallMediaConfig *__nonnull | mediaConfig |
详细描述
一对一通话类
该类的所有实例方法在调用时需保证用户的登录状态为已登录
函数文档
◆ answer:
- (bool) answer: | (JCCallItem *__nonnull) | item |
接听
调用接口成功会收到 onCallItemUpdate 通知
另外还有两种情况也会收到 onCallItemUpdate 通知:1、若收到的是视频呼叫,而本端选择了音频接听 2、若此路通话不是活跃的,会将此路通话设为活跃通话。
调用接口失败会收到 onCallItemRemove 通知
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ audioRecord:enable:filePath:
- (bool) audioRecord: | (JCCallItem *__nonnull) | item | |
enable: | (bool) | enable | |
filePath: | (NSString *__nullable) | filePath | |
开启/关闭通话录音
调用成功会收到 onCallItemUpdate 通知
开启通话录音,需要保证没有在录音也没有在录制视频
关闭通话录音,需要保证当前通话正在录音
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象 enable 开启/关闭录音 - true: 开启录音
- false: 关闭录音
filePath 录音文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:/Documents/JuphoonCloud/audio.wmv。请确保目录存在且可写。
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ becomeActive:
- (bool) becomeActive: | (JCCallItem *__nonnull) | item |
切换活跃通话
调用此方法时,入参 JCCallItem 对象不是活跃的,则会收到 onCallItemUpdate 通知
入参 JCCallItem 对象已是活跃的,则不会收到通知
- 参数
-
item 需要变为活跃状态的 JCCallItem 对象
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ call:callParam:
- (bool) call: | (NSString *__nonnull) | userId | |
callParam: | (JCCallParam *__nullable) | callParam | |
发起一对一呼叫 发起呼叫成功后,会收到 onCallItemAdd 通知
- 注解
- 在调用此接口时确保用户的登录状态为已登录
- 参数
-
userId 对方的用户标识 callParam JCCallParam 通话参数对象,此参数可为空。详细定义见: JCCallParam
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ create:mediaDevice:callback:
+ (JCCall* __nullable) create: | (JCClient *__nonnull) | client | |
mediaDevice: | (JCMediaDevice *__nonnull) | mediaDevice | |
callback: | (id< JCCallCallback > __nonnull) | callback | |
创建 JCCall 对象
JCCall 的所有接口函数,如无特殊说明,都建议在主线程调用
- 注解
- 参数
-
client JCClient 对象 mediaDevice JCMediaDevice 对象,通过 create 方法创建 callback JCCallCallback 对象,用于回调相关通知
- 返回
- JCCall 对象
- 异常
-
JCClient、JCMediaDevice、JCCallCallback 任意一个参数传空就会创建失败
◆ destroy
+ (void) destroy |
◆ getActiveCallItem
- (JCCallItem* __nullable) getActiveCallItem |
获得当前活跃的通话
当上层收到 onCallItemAdd 回调后,调用此方法可以获取到当前活跃的通话对象,可以使用该对象进行接听、渲染视频画面等操作。
若上层在收到 onCallItemAdd 回调前调用了此方法,将会返回 nil。
- 返回
- JCCallItem 对象:当前活跃的通话对象
- nil:当前没有活跃的通话
◆ getStatistics
- (NSString * __nullable) getStatistics |
获得当前通话统计信息
统计信息以Json字符串形式返回,其中包含 "Audio"、"Mtp" 三个键值
- 返回
- 当前通话统计信息
◆ hold:
- (bool) hold: | (JCCallItem *__nonnull) | item |
开启/取消呼叫保持
调用成功会收到 onCallItemUpdate 通知
开启呼叫保持后,通话将被挂起,通过 hold 来决定开启/取消呼叫保持
- 注解
- 只针对音频,如果是视频通话则要上层处理视频逻辑
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象,此对象的通话状态必须为通话中
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ mute:
- (bool) mute: | (JCCallItem *__nonnull) | item |
开启/取消音频输入静音
- 弃用:
- 从 v2.7.1 废弃。Juphoon 不建议你使用。如果你想开启/取消音频输入静音,请改用 muteMicrophone 方法
调用成功会收到 onCallItemUpdate 通知
开启后对端听不到本端的声音,通过 mute 来决定开启/取消静音
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象,此对象的通话状态必须为通话中
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ muteMicrophone:mute:
- (bool) muteMicrophone: | (JCCallItem *__nonnull) | item | |
mute: | (bool) | mute | |
开启/取消音频输入静音
开启后对端将听不到本端的声音
- microphoneMute 为 true,即静音状态时: 取消静音
- microphoneMute 为 false,即不是静音状态时: 开启静音
- 参数
-
item JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中 mute 是否静音
- 返回
- 是否正常调用
- true:正常执行调用流程,会收到 onCallItemUpdate 通知
- false:调用失败,不会收到通知
◆ muteSpeaker:mute:
- (bool) muteSpeaker: | (JCCallItem *__nonnull) | item | |
mute: | (bool) | mute | |
开启/取消音频输出静音
开启后本端将听不到远端的声音
- speakerMute 为 true,即静音状态时: 取消静音
- speakerMute 为 false,即不是静音状态时: 开启静音
- 参数
-
item JCCallItem 对象,不能为空,并且本地缓存的通话列表中要包含此对象,此对象的通话状态必须为通话中 mute 是否静音
- 返回
- 是否正常调用
- true:正常执行调用流程,会收到 onCallItemUpdate 通知
- false:调用失败,不会收到通知
◆ sendDtmf:value:
- (bool) sendDtmf: | (JCCallItem *_Nonnull) | item | |
value: | (JCCallDtmf) | value | |
◆ sendMessage:type:content:
- (bool) sendMessage: | (JCCallItem *__nonnull) | item | |
type: | (NSString *__nonnull) | type | |
content: | (NSString *__nonnull) | content | |
通过通话建立的通道发送数据
- 参数
-
item 需要发送数据的 JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象 type 文本消息类型,用户可以自定义,例如text,xml等 content 文本内容
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ term:reason:description:
- (bool) term: | (JCCallItem *__nonnull) | item | |
reason: | (JCCallReason) | reason | |
description: | (NSString *__nullable) | description | |
挂断
调用接口成功会收到 onCallItemRemove 通知
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象 reason 挂断原因 description 挂断描述
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
属性说明
◆ callItems
|
readnonatomicstrong |
获得通话对象列表
当 maxCallNum > 1 时,callItems 通话对象列表中可能存在多个音频通话
◆ maxCallNum
|
readwritenonatomicassign |
最大通话数,默认值为1
- 注解
- 当通话数到达最大通话数后,调用 call 接口呼出会失败,收到来电会自动拒绝
◆ mediaConfig
|
readwritenonatomicstrong |
当前的媒体配置参数
- 注解
- 该属性在调用 call 方法之前设置才生效
JCCallMediaConfig 对象建议通过 generateByMode 方法创建
◆ termWhenNetDisconnected
|
readwritenonatomicassign |
当音频接收网络状态为无网络时是否挂断,默认为 false
即 audioNetReceiveStatus 状态为 JCCallNetWorkDisconnected 时是否挂断
- true: 挂断
- false: 不挂断
该类的文档由以下文件生成:
- JCSDKOC/JCSDKOC/JCCall/JCCall.h