JCSDK Objective-C API Reference for iOS/macOS
2.5.1
|
构造函数 | |
(JCMediaDeviceVideoCanvas *__nullable) | - startCameraVideo: |
(JCMediaDeviceVideoCanvas *__nullable) | - startCameraVideo:view: |
(JCMediaDeviceVideoCanvas *__nullable) | - startVideo:renderType: |
(JCMediaDeviceVideoCanvas *__nullable) | - startVideo:renderType:view: |
(void) | - stopVideo: |
(bool) | - startAudio |
(bool) | - stopAudio |
(bool) | - startCamera |
(bool) | - stopCamera |
(bool) | - switchCamera |
(bool) | - switchCamera: |
(void) | - setCameraProperty:height:framerate: |
(void) | - setScreenCaptureProperty:height:framerate: |
(bool) | - startVideoFile |
(void) | - setVideoFileFrame:format:width:height: |
(void) | - setVideoFileFrame:angle:mirror: |
(bool) | - stopVideoFile |
(void) | - enableSpeaker: |
(NSString *__nullable) | - getAudioOutputType |
(bool) | - isSpeakerOn |
类方法 | |
(JCMediaDevice *__nullable) | + create:callback: |
(void) | + destroy |
属性 | |
bool | cameraOpen |
bool | videoFileOpen |
JCMediaDeviceCamera *__nullable | camera |
NSArray< JCMediaDeviceCamera * > *__nonnull | cameras |
JCMediaDeviceCamera *__nullable | defaultCamera |
JCMediaDeviceAudioParam *_Nonnull | audioParam |
NSString *__nonnull | videoFileId |
bool | audioInterrupt |
JCMediaDeviceVideoAngel | videoAngle |
bool | useInternalAudioDeviceLogic |
bool | audioStart |
NSArray< JCMediaDeviceAudio * > *__nonnull | audioInputs |
JCMediaDeviceAudio *__nullable | audioInput |
NSArray< JCMediaDeviceAudio * > *__nonnull | audioOutputs |
JCMediaDeviceAudio *__nullable | audioOutput |
NSArray< JCMediaDeviceWindow * > *__nonnull | desktops |
NSArray< JCMediaDeviceWindow * > *__nonnull | windows |
JCMediaDeviceWindow *__nullable | screenshareWindow |
bool | defaultSpeakerOn |
设备模块
+ (JCMediaDevice* __nullable) create: | (JCClient *__nonnull) | client | |
callback: | (id< JCMediaDeviceCallback > __nonnull) | callback | |
创建 JCMediaDevice 对象
JCMediaDevice 的所有接口函数,如无特殊说明,都建议在主线程调用
client | JCClient 对象 |
callback | JCMediaDeviceCallback 对象,用于回调相关通知 |
JCClient、JCMediaDeviceCallback 任意一个参数传空就会调用失败 |
+ (void) destroy |
销毁 JCMediaDevice 对象
该方法为同步调用,需要等待 JCMediaDevice 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCMediaDevice 的其它方法和回调。
我们 不建议 在 JCSDK 的回调中调用此方法销毁 JCMediaDevice 对象,否则会出现崩溃。
如需在销毁后再次创建 JCMediaDevice 实例,需要等待 destroy 方法执行结束后再创建实例。
- (void) enableSpeaker: | (bool) | enable |
开启/关闭扬声器,iOS 使用
只有在音频已经启动的情况下调用才会生效
enable | 开启或者关闭扬声器
|
- (NSString* __nullable) getAudioOutputType |
获得当前音频模式,目前只支持听筒和扬声器,iOS 使用
- (bool) isSpeakerOn |
扬声器是否已打开,iOS 使用
- (void) setCameraProperty: | (int) | width | |
height: | (int) | height | |
framerate: | (int) | framerate | |
设置摄像头采集属性
在调用 startSelfVideo 方法或 startVideo 方法开启自身视频渲染前设置即可生效
width | 采集宽度,默认640 |
height | 采集高度,默认360 |
frameRate | 采集帧速率,默认24 |
- (void) setScreenCaptureProperty: | (int) | width | |
height: | (int) | height | |
framerate: | (int) | framerate | |
设置屏幕共享采集属性
在调用 enableScreenShare 方法开启屏幕共享前设置即可生效
width | 采集宽度,默认1280 |
height | 采集高度,默认720 |
frameRate | 采集帧速率,默认10 |
- (void) setVideoFileFrame: | (CVPixelBufferRef __nonnull) | srcFrame | |
angle: | (int) | angle | |
mirror: | (int) | mirror | |
向文件视频源逐帧添加视频数据
调用此方法时要保证文件视频源已开启
srcFrame | 视频数据 |
angle | 角度, 为 90 的倍数 |
mirror | 是否镜像,0 不镜像,1 镜像 |
- (void) setVideoFileFrame: | (NSData *__nonnull) | srcFrame | |
format: | (JCMediaDeviceVideoPixelFormat) | format | |
width: | (int) | width | |
height: | (int) | height | |
- (bool) startAudio |
启动音频
在通话连接中或者加入频道成功时,SDK内部会自动调用此方法来启动音频,上层无需再调用此方法
- (bool) startCamera |
开启摄像头
- (JCMediaDeviceVideoCanvas* __nullable) startCameraVideo: | (JCMediaDeviceRender) | type |
开始自身视频渲染
获取本端视频预览对象 JCMediaDeviceVideoCanvas,通过此对象能获得视图用于UI显示
一对一通话建议使用 startSelfVideo 方法代替,多方通话建议使用 startVideo 方法代替
type | 渲染模式:
|
- (JCMediaDeviceVideoCanvas* __nullable) startCameraVideo: | (JCMediaDeviceRender) | type | |
view: | (JCView *__nonnull) | view | |
开始自身视频渲染
获取本端视频预览对象 JCMediaDeviceVideoCanvas,通过此对象能获得视图用于UI显示
一对一通话建议使用 startSelfVideo 方法代替,多方通话建议使用 startVideo 方法代替
type | 渲染模式:
|
view | 渲染视图 |
- (JCMediaDeviceVideoCanvas* __nullable) startVideo: | (NSString *__nonnull) | videoSource | |
renderType: | (JCMediaDeviceRender) | type | |
开始其他端的视频渲染
获取其他端的视频预览对象 JCMediaDeviceVideoCanvas,通过此对象能获得视图用于UI显示
一对一通话建议使用 startOtherVideo 方法代替,多方通话建议使用 startVideo 方法代替
videoSource | 渲染标识串,通过 JCMediaChannelParticipant 的 renderId 方法和 JCCallItem 的 renderId 方法可以得到 |
type | 渲染模式:
|
- (JCMediaDeviceVideoCanvas* __nullable) startVideo: | (NSString *__nonnull) | videoSource | |
renderType: | (JCMediaDeviceRender) | type | |
view: | (JCView *__nonnull) | view | |
开始其他端的视频渲染
获取其他端的视频预览对象 JCMediaDeviceVideoCanvas,通过此对象能获得视图用于UI显示
一对一通话建议使用 startOtherVideo 方法代替,多方通话建议使用 startVideo 方法代替
videoSource | 渲染标识串,通过 JCMediaChannelParticipant 的 renderId 方法和 JCCallItem 的 renderId 方法可以得到 |
type | 渲染模式:
|
view | 渲染视图 |
- (bool) startVideoFile |
开启视频文件作为视频输入源
- (bool) stopAudio |
停止音频
在通话挂断时或者离开频道时,SDK内部会自动调用此方法来停止音频,上层无需再调用此方法
- (bool) stopCamera |
关闭摄像头
- (void) stopVideo: | (JCMediaDeviceVideoCanvas *__nonnull) | canvas |
停止视频渲染
一对一通话建议使用 stopSelfVideo 和 stopOtherVideo 方法代替,多方通话渲染建议使用 stopVideo 方法代替
canvas | JCMediaDeviceVideoCanvas 对象,由 startVideo 或 startCameraVideo 返回 |
- (bool) stopVideoFile |
关闭逐帧采集画面
- (bool) switchCamera |
切换摄像头
内部会根据当前摄像头类型来进行切换
- (bool) switchCamera: | (JCMediaDeviceCamera *__nonnull) | camera |
切换摄像头
调用此方法时需要保证摄像头已打开并且摄像头数大于0,否则将直接返回 false
camera | 摄像头 |
|
readwritenonatomicstrong |
当前音频输入设备,mac 使用
|
readnonatomicassign |
音频输入设备列表,mac 使用
|
readnonatomicassign |
是否声音被中断
|
readwritenonatomicstrong |
当前音频输出设备,mac 使用
|
readnonatomicassign |
音频输出设备列表,mac 使用
|
readwritenonatomicstrong |
音频参数
此参数不设置,将使用默认值。此参数在调用 startAudio 方法前设置,即连接通话或加入频道前设置此参数
|
readnonatomicassign |
音频是否启动
一般正式开启通话前需要调用此接口
|
readnonatomicstrong |
当前使用的摄像头
|
readnonatomicassign |
摄像头是否已打开
|
readnonatomicassign |
摄像头列表
|
readwritenonatomicstrong |
默认摄像头
|
readwritenonatomicassign |
没有插入耳机或外接蓝牙时是否默认开启扬声器,默认关闭,iOS 使用
|
readnonatomicassign |
桌面列表,mac 使用
|
readwritenonatomicstrong |
屏幕分享的窗口,mac 使用
|
readwritenonatomicassign |
是否使用内部音频设备逻辑 内部音频设备逻辑如下:
1.打开扬声器 - 使用扬声器输出声音
2.连上蓝牙耳机 - 使用蓝牙耳机输出声音,如果扬声器开着则关闭扬声器
3.插入耳机 - 使用耳机输出声音,如果扬声器开着则关闭扬声器
4.蓝牙耳机和有线耳机以最后连上的作为输出
5.关闭扬声器 - (蓝牙耳机或有线耳机) 优于 听筒
|
readwritenonatomicassign |
视频渲染窗体角度
|
readnonatomicstrong |
视频文件作为本地视频源的渲染标识
|
readnonatomicassign |
文件播放是否打开
|
readnonatomicassign |
窗口列表,mac 使用