JCSDK Objective-C API Reference for iOS/macOS
2.5.1
|
构造函数 | |
(int) | - query: |
(bool) | - join:joinParam: |
(bool) | - leave |
(bool) | - stop |
(bool) | - enableUploadAudioStream: |
(bool) | - enableUploadVideoStream: |
(bool) | - enableAudioOutput: |
(bool) | - requestVideo:pictureSize: |
(bool) | - enableScreenShare:screenShareParam: |
(bool) | - requestScreenVideo:pictureSize: |
(bool) | - enableCdn:keyInterval: |
(bool) | - enableRecord:recordParam: |
(JCMediaChannelParticipant *__nullable) | - getParticipant: |
(NSString *__nullable) | - getStatistics |
(bool) | - setCustomProperty: |
(NSString *__nullable) | - getCustomProperty |
(bool) | - sendMessage:content:toUserId: |
(int) | - inviteSipUser:sipParam: |
(bool) | - sendCommand:commandParam: |
(void) | - setCustomRole:participant: |
(JCMediaChannelCustomRole) | - getCustomRole |
(void) | - setCustomState:participant: |
(JCMediaChannelCustomState) | - getCustomState |
(BOOL) | - kick: |
(bool) | - sendCommandToDelivery: |
(void) | - enableSelfVideoRatio:ratio: |
(JCMediaDeviceVideoCanvas *__nullable) | - startScreenShareVideo:pictureSize: |
(void) | - stopScreenShareVideo |
类方法 | |
(JCMediaChannel *__nullable) | + create:mediaDevice:callback: |
(void) | + destroy |
属性 | |
NSString *__nullable | channelUri |
NSString *__nullable | channelId |
int | channelNumber |
NSString *__nullable | sessionId |
NSString *__nonnull | password |
JCMediaChannelState | state |
NSArray *__nonnull | participants |
bool | uploadLocalAudio |
bool | uploadLocalVideo |
bool | audioOutput |
NSString *__nullable | screenRenderId |
NSString *__nullable | screenUserId |
NSString *__nullable | title |
JCMediaChannelRecordState | recordState |
JCMediaChannelCdnState | cdnState |
JCMediaChannelParticipant *__nullable | selfParticipant |
bool | volumeChangeNotify |
多方通话模块,类似音视频房间的概念,可以通过频道号 channelId 加入频道进行音视频通话
+ (JCMediaChannel* __nullable) create: | (JCClient *__nonnull) | client | |
mediaDevice: | (JCMediaDevice *__nonnull) | mediaDevice | |
callback: | (id< JCMediaChannelCallback > __nonnull) | callback | |
创建 JCMediaChannel 对象
JCMediaChannel 的所有接口函数,如无特殊说明,都建议在主线程调用
client | JCClient 对象 |
mediaDevice | JCMediaDevice 对象 |
callback | JCMediaChannelCallback 对象,用于回调相关通知 |
JCClient、JCMediaDevice、JCMediaChannelCallback 任意一个参数传空就会出现调用失败 |
+ (void) destroy |
销毁 JCMediaChannel 对象
该方法为同步调用,需要等待 JCMediaChannel 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCMediaChannel 的其它方法和回调。
我们 不建议 在 JCSDK 的回调中调用此方法销毁 JCMediaChannel 对象,否则会出现崩溃。
如需在销毁后再次创建 JCMediaChannel 实例,需要等待 destroy 方法执行结束后再创建实例。
- (bool) enableAudioOutput: | (bool) | enable |
开启/关闭远端音频输出
该方法可实现本地静音功能。关闭时听不到频道内其他成员的声音,不影响其他成员;开启时可以听到其他成员声音
初始化 JCMediaChannel 时,音频输出功能默认是开启的。若要加入频道时听不见其他成员的声音,建议在调用 join 加入频道前设置
该方法可以关闭或重新开启音频输出功能,在频道内和频道外均可调用,且在离开频道后该设置仍然有效,也就是说这一次设置了关闭音频输出,那么下一次加入频道时也是默认关闭音频输出
enable | 是否开启音频输出
|
- (bool) enableCdn: | (bool) | enable | |
keyInterval: | (int) | keyInterval | |
开启/关闭Cdn推流
在收到 onMediaChannelPropertyChange 回调后检查是否开启
enable | 开启/关闭Cdn推流
|
keyInterval | 推流关键帧间隔(毫秒),当参数 enable 为 true 时有效,有效值需要>=1000 |
- (bool) enableRecord: | (bool) | enable | |
recordParam: | (JCMediaChannelRecordParam *__nullable) | recordParam | |
开启/关闭视频录制
enable | 开启/关闭视频录制
|
recordParam | JCMediaChannelRecordParam 录制参数对象,当参数 enable 为 true 时,可以更改由 join 时传入的录制参数,不需更改则填 nil |
- (bool) enableScreenShare: | (bool) | enable | |
screenShareParam: | (JCMediaChannelScreenShareParam *__nullable) | screenShareParam | |
开启/关闭屏幕分享
在频道中时调用此方法才有效
enable | 开启/关闭屏幕分享
|
- (void) enableSelfVideoRatio: | (bool) | enable | |
ratio: | (float) | ratio | |
设置自身视频宽高比
enable | 是否开启自身视频宽高比
|
ratio | 视频宽高比 |
- (bool) enableUploadAudioStream: | (bool) | enable |
开启/关闭发送本地音频流
调用该方法可开启或关闭发送本地音频流。开启后,频道成员将听见本端声音;关闭后,频道成员将听不见本端声音
初始化 JCMediaChannel 时,默认不发送本地音频流。若要加入频道时,让频道内其他成员听见本端声音,需要在调用 join 加入频道前设置
该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了开启发送本地音频流,那么在下一次加入频道时默认会开启发送本地音频流
会议中也可调用此方法开启或关闭发送本地音频流,服务器会更新状态并同步给其他频道成员
会议中调用此方法不影响接收远端音频
enable | 开启/关闭发送本地音频流
|
- (bool) enableUploadVideoStream: | (bool) | enable |
开启/关闭发送本地视频流
调用该方法可开启或关闭发送本地视频流。开启后,频道成员将可以看见本端视频画面;关闭后,频道成员将看不见本端视频画面
初始化 JCMediaChannel 时,默认发送本地视频流。若要加入频道时,让频道内其他成员看见本端视频画面,建议在调用 join 加入频道前设置
该方法在频道内和频道外均可调用,且在离开频道后该设置仍然有效。也就是说这一次设置了关闭发送本地视频流,那么在下一次加入频道时默认会关闭发送本地视频流
会议中也可调用此方法开启或关闭发送本地视频流,服务器会更新状态并同步给其他频道成员
会议中调用此方法不影响接收远端视频
enable | 是否发送本地视频流
|
- (NSString * __nullable) getCustomProperty |
获取自定义频道属性
调用此接口来获取频道自定义属性
- (JCMediaChannelCustomRole) getCustomRole |
获得自定义角色
- (JCMediaChannelCustomState) getCustomState |
获得自定义状态
- (JCMediaChannelParticipant* __nullable) getParticipant: | (NSString *__nonnull) | userId |
- (NSString * __nullable) getStatistics |
获取统计信息
以Json字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点
- (int) inviteSipUser: | (NSString *__nonnull) | userId | |
sipParam: | (JCMediaChannelSipParam *__nonnull) | sipParam | |
邀请Sip用户
一般用于对接落地网关等,结果通过 onInviteSipUserResult 通知
userId | 一般为号码 |
sipParam | JCMediaChannelSipParam 参数对象 |
- (bool) join: | (NSString *__nonnull) | channelIdOrUri | |
joinParam: | (JCMediaChannelJoinParam *__nullable) | joinParam | |
加入频道
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话
如果已在频道中,用户必须退出当前频道,即处于空闲状态,才能进入下一个频道,否则将直接返回 false
channelIdOrUri | 多方通话标识或者频道Uri,当入参 JCMediaChannelJoinParam 对象 中 uriMode 设置为 true 时表示频道 channelUri ,否则表示频道标识 channelId |
joinParam | JCMediaChannelJoinParam 对象,没有则填 nil |
- (BOOL) kick: | (JCMediaChannelParticipant *__nonnull) | participant |
将成员踢出频道
participant | 成员 |
- (bool) leave |
- (int) query: | (NSString *__nonnull) | channelId |
- (bool) requestScreenVideo: | (NSString *__nonnull) | screenUri | |
pictureSize: | (JCMediaChannelPictureSize) | pictureSize | |
请求频道成员屏幕共享的视频流
当 pictureSize 为 JCMediaChannelPictureSizeNone 表示关闭请求
screenUri | 屏幕分享uri |
pictureSize | 视频请求尺寸类型,参见: |
- (bool) requestVideo: | (JCMediaChannelParticipant *__nonnull) | participant | |
pictureSize: | (JCMediaChannelPictureSize) | pictureSize | |
请求频道中其他用户的视频流
当 pictureSize 为 JCMediaChannelPictureSizeNone 时表示关闭请求
participant | JCMediaChannelParticipant 频道中其他成员对象 |
pictureSize | 视频请求的尺寸类型: |
- (bool) sendCommand: | (NSString *__nonnull) | name | |
commandParam: | (NSString *__nonnull) | param | |
发送指令
name | 指令名 |
param | 指令参数 |
- (bool) sendCommandToDelivery: | (NSString *__nonnull) | command |
发送命令给推流或录制器
发送命令给推流时,只有加入成功并且推流状态为 JCMediaChannelCdnStateReady 才生效
发送命令给录制器时,只有加入成功并且录制状态为 JCMediaChannelRecordStateReady 才生效
command | 命令字符串 |
- (bool) sendMessage: | (NSString *__nonnull) | type | |
content: | (NSString *__nonnull) | content | |
toUserId: | (NSString *__nullable) | toUserId | |
发送消息
type | 消息类型 |
content | 消息内容,不能为空,并且当 toUserId 不为 nil 时,content 不能大于 4k |
toUserId | 接收者id,传入 nil 则发给频道所有人员 |
- (bool) setCustomProperty: | (NSString *__nonnull) | property |
设置频道自定义属性
调用此接口来设置频道自定义属性
property | 自定义属性 |
- (void) setCustomRole: | (JCMediaChannelCustomRole) | customRole | |
participant: | (JCMediaChannelParticipant *__nullable) | participant | |
设置自定义角色
customRole | 自定义角色 |
participant | JCMediaChannelParticipant 对象,频道中的成员,nil 则默认设置自己 |
- (void) setCustomState: | (JCMediaChannelCustomState) | customState | |
participant: | (JCMediaChannelParticipant *__nullable) | participant | |
设置自定义状态
customState | 自定义状态 |
participant | JCMediaChannelParticipant 对象,频道中的成员,nil 则默认设置自己 |
- (JCMediaDeviceVideoCanvas* __nullable) startScreenShareVideo: | (JCMediaDeviceRender) | type | |
pictureSize: | (JCMediaChannelPictureSize) | pictureSize | |
启动频道成员的屏幕分享视频渲染
频道成员开启屏幕分享时,调用此方法可获得屏幕分享视频 渲染对象
type | 渲染模式:
|
pictureSize | 视频请求的尺寸类型: |
- (bool) stop |
关闭频道
此频道内的成员都将被强制退出
- (void) stopScreenShareVideo |
停止屏幕分享视频渲染
调用 startScreenShareVideo 启动屏幕分享视频渲染后,调用此方法可停止
|
readnonatomicassign |
是否音频输出
本地没有音频输出的话,就听不到频道内其他成员的声音了
|
readnonatomicassign |
获得cdn推流状态
|
readnonatomiccopy |
频道标识
|
readnonatomicassign |
频道号
|
readnonatomiccopy |
频道 Uri
|
readnonatomicstrong |
获得频道中的所有成员
|
readnonatomicassign |
频道密码
|
readnonatomicassign |
获得视频录制状态,参见:
|
readnonatomiccopy |
屏幕共享渲染标识
没有屏幕共享则为 nil
|
readnonatomiccopy |
屏幕共享用户标识
没有屏幕共享则为 nil
|
readnonatomicassign |
|
readnonatomiccopy |
获取服务器唯一频道ID
|
readnonatomicassign |
自己当前在频道中的状态
当前在频道中的状态,参见:
|
readnonatomiccopy |
频道标题
|
readnonatomicassign |
是否上传本地音频数据
|
readnonatomicassign |
是否上传本地视频数据
|
readwritenonatomicassign |
是否通知成员音量变化,默认不通知