构造函数 | |
(bool) | - call:video:callParam: |
(bool) | - term:reason:description: |
(bool) | - answer:video: |
(bool) | - mute: |
(bool) | - muteMicrophone:mute: |
(bool) | - muteSpeaker:mute: |
(bool) | - hold: |
(bool) | - audioRecord:enable:filePath: |
(bool) | - videoRecord:enable:remote:width:height:filePath:bothAudio: |
(bool) | - becomeActive: |
(bool) | - enableUploadVideoStream: |
(bool) | - sendMessage:type:content: |
(NSString *__nullable) | - getStatistics |
(JCCallItem *__nullable) | - getActiveCallItem |
(bool) | - sendDtmf:value: |
(bool) | - setRudpMode: |
(bool) | - getRudpMode |
类方法 | |
(JCCall *__nullable) | + create:mediaDevice:callback: |
(void) | + destroy |
属性 | |
NSArray *__nullable | callItems |
int | maxCallNum |
bool | termWhenNetDisconnected |
JCCallMediaConfig *__nonnull | mediaConfig |
详细描述
一对一通话类
该类的所有实例方法在调用时需保证用户的登录状态为已登录
函数文档
◆ answer:video:
- (bool) answer: | (JCCallItem *__nonnull) | item | |
video: | (bool) | video | |
接听
调用接口成功会收到 onCallItemUpdate 通知
另外还有两种情况也会收到 onCallItemUpdate 通知:1、若收到的是视频呼叫,而本端选择了音频接听 2、若此路通话不是活跃的,会将此路通话设为活跃通话。
调用接口失败会收到 onCallItemRemove 通知
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象 video 针对视频呼入可以选择以视频接听还是音频接听 - true: 视频接听
- false: 音频接听
- 返回
- 是否正常调用
- 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:video:callParam:
- (bool) call: | (NSString *__nonnull) | userId | |
video: | (bool) | video | |
callParam: | (JCCallParam *__nullable) | callParam | |
发起一对一呼叫
若发起的是音频呼叫,需要保证本地不存视频通话,并且本地通话数未达到最大通话数,最大通话数为:maxCallNum
若发起的是视频呼叫,需要保证本地不存在通话
发起呼叫成功后,会收到 onCallItemAdd 通知
以下两种情况会收到 onCallItemRemove 通知:
- 本端发起视频呼叫时,对方已存在通话
- 本端发起音频呼叫时,对方已存在视频通话
- 注解
- 在调用此接口时确保用户的登录状态为已登录
- 参数
-
userId 对方的用户标识 video 是否视频呼叫 - true: 视频呼叫
- false: 音频呼叫
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 |
◆ enableUploadVideoStream:
- (bool) enableUploadVideoStream: | (JCCallItem *__nonnull) | item |
开启/关闭视频流发送
调用成功会收到 onCallItemUpdate 通知
通过 JCCallItem 对象的 uploadVideoStreamSelf 状态来决定开启还是关闭视频流的发送
- 若 uploadVideoStreamSelf 为 true,即已在上传视频流: 关闭视频流发送
- 若 uploadVideoStreamSelf 为 false,即未上传视频流: 开启视频流发送
- 注解
- 用于视频通话中
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象
- 返回
- 是否正常调用
- true:正常执行调用流程
- false:调用失败
◆ getActiveCallItem
- (JCCallItem* __nullable) getActiveCallItem |
获得当前活跃的通话
当上层收到 onCallItemAdd 回调后,调用此方法可以获取到当前活跃的通话对象,可以使用该对象进行接听、渲染视频画面等操作。
若上层在收到 onCallItemAdd 回调前调用了此方法,将会返回 nil。
- 返回
- JCCallItem 对象:当前活跃的通话对象
- nil:当前没有活跃的通话
◆ getRudpMode
- (bool) getRudpMode |
RUDP开关状态
true开启,false关闭
◆ getStatistics
- (NSString * __nullable) getStatistics |
获得当前通话统计信息
统计信息以Json字符串形式返回,其中包含 "Audio"、"Video"、"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:调用失败
◆ setRudpMode:
- (bool) setRudpMode: | (bool) | open |
RUDP开关
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:调用失败
◆ videoRecord:enable:remote:width:height:filePath:bothAudio:
- (bool) videoRecord: | (JCCallItem *__nonnull) | item | |
enable: | (bool) | enable | |
remote: | (bool) | remote | |
width: | (int) | width | |
height: | (int) | height | |
filePath: | (NSString *__nullable) | filePath | |
bothAudio: | (bool) | bothAudio | |
开启/关闭视频通话录制
调用成功会收到 onCallItemUpdate 通知
开启视频录制,需要保证 1、没有在录音 2、若是录制远端视频,要保证没有在录制远端视频,并且远端在上传视频流 3、若是录制本端视频,要保证没有在录制本端视频,并且本端在上传视频流。
关闭视频录制,需要保证 1、若是关闭远端视频,要保证正在录制远端视频 2、若是关闭本端视频,要保证正在录制本端视频
- 参数
-
item JCCallItem 对象,不能为空,并且 callItems 通话列表中要包含此对象 enable 是否开启视频通话录制 - true: 开启
- false: 关闭
remote 是否录制远端视频源 - true: 录制远端视频
- false: 录制本端视频
width 录制视频宽像素 height 录制视频高像素 filePath 录制视频文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:/Documents/JuphoonCloud/video.mp4。请确保目录存在且可写。 bothAudio 是否录制两端音频 - true: 录制两端音频
- false: 录制视频端音频。也就是说 remote 为 true 就录制远端音频,remote 为 false 录制本端音频。
- 返回
- 是否正常调用
- 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