‪设备模块 更多...

#import <JCMediaDevice.h>

类 JCMediaDevice 继承关系图:

构造函数

(NSArray< JCMediaDeviceCamera * > *__nullable) - getCameras
 ‪获取系统摄像头 更多...
 
(JCMediaDeviceVideoCanvas *__nullable) - startCameraVideo:
 ‪获得预览视频对象,通过此对象能获得视图用于UI显示 更多...
 
(JCMediaDeviceVideoCanvas *__nullable) - startVideo:renderType:
 ‪获得预览视频对象,通过此对象能获得视图用于UI显示 更多...
 
(JCMediaDeviceVideoCanvas *__nullable) - startVideo:renderType:view:
 ‪获得预览视频对象,通过此对象能获得视图用于UI显示 更多...
 
(void) - stopVideo:
 ‪停止视频 更多...
 
(bool) - startAudio
 ‪启动音频,一般正式开启通话前需要调用此接口 更多...
 
(bool) - stopAudio
 ‪停止音频,一般在通话结束时调用 更多...
 
(bool) - startAudioInput
 ‪打开音频输入设备 更多...
 
(bool) - stopAudioInput
 ‪关闭音频输入设备 更多...
 
(bool) - startAudioOutput
 ‪打开音频输出设备 更多...
 
(bool) - stopAudioOutput
 ‪关闭音频输出设备 更多...
 
(bool) - startCamera
 
(bool) - stopCamera
 
(bool) - switchCamera
 
(bool) - switchCamera:
 
(void) - specifyCamera:
 
(void) - specifyCameraAngle:
 
(void) - setCameraProperty:height:framerate:
 
(void) - setScreenCaptureProperty:height:framerate:
 
(bool) - startVideoFile
 ‪开启视频文件作为视频输入源,文件和摄像头作为视频输入源只能存在一种,当前摄像头开启的话会关闭摄像头 更多...
 
(bool) - startScreenShareVideoFile
 ‪开启屏幕共享作为视频输入源 更多...
 
(bool) - setVideoFileFrame:format:width:height:angle:
 ‪向文件视频源逐帧添加视频数据 更多...
 
(void) - setVideoFileFrame:angle:mirror:
 ‪向文件视频源逐帧添加视频数据 更多...
 
(bool) - startVideoCaptureRecordFilePath:captureId:fileType:width:height:
 ‪开始视频录制 更多...
 
(bool) - stopVideoCaptureRecordCaptureId:
 ‪停止视频录制 更多...
 
(bool) - startAudioRecordFilePath:fileType:
 ‪开始音频录制 更多...
 
(bool) - stopAudioCaptureRecord
 ‪停止音频录制 更多...
 
(bool) - stopVideoFile
 ‪关闭文件视频源 更多...
 
(void) - destroy
 ‪销毁接口 更多...
 
(int) - getScreenFramerate
 ‪获得当前屏幕共享帧率 更多...
 

类方法

(JCMediaDevice *__nullable) + create:callback:
 ‪创建 JCMediaDevice 对象 更多...
 

属性

bool isAudioInputStart
 
bool isAudioOutputStart
 
bool cameraOpen
 
bool videoFileOpen
 
JCMediaDeviceCamera *__nullable currentCamera
 
NSArray< JCMediaDeviceCamera * > *__nonnull cameras
 
JCMediaDeviceCamera *__nullable defaultCamera
 
JCMediaDeviceAudioParam *__nonnull audioParam
 
NSString *__nonnull videoFileId
 
bool audioInterrupt
 
JCMediaDeviceVideoAngel videoAngle
 
bool useInternalAudioDeviceLogic
 
bool audioStart
 

详细描述

设备模块

函数文档

◆ create:callback:

+ (JCMediaDevice* __nullable) create: (JCClient *__nonnull)  client
callback: (id< JCMediaDeviceCallback > __nonnull)  callback 

‪创建 JCMediaDevice 对象

参数
clientJCClient 对象
callbackJCMediaDeviceCallback 回调接口,用于接收 JCMediaDevice 相关通知
返回
‪返回 JCMediaDevice 对象

◆ destroy

- (void) destroy

‪销毁接口

◆ getCameras

- (NSArray<JCMediaDeviceCamera *> * __nullable) getCameras

‪获取系统摄像头

返回
‪摄像头

◆ getScreenFramerate

- (int) getScreenFramerate

‪获得当前屏幕共享帧率

返回
‪屏幕共享帧率

◆ setCameraProperty:height:framerate:

- (void) setCameraProperty: (int)  width
height: (int)  height
framerate: (int)  framerate 

@breif 设置摄像头采集属性

参数
width‪采集宽度,默认640
height‪采集高度,默认360
framerate‪帧速率,默认30

◆ setScreenCaptureProperty:height:framerate:

- (void) setScreenCaptureProperty: (int)  width
height: (int)  height
framerate: (int)  framerate 

@breif 设置屏幕共享采集属性

参数
width‪采集宽度,默认640
height‪采集高度,默认360
framerate‪帧速率,默认16

◆ setVideoFileFrame:angle:mirror:

- (void) setVideoFileFrame: (CVPixelBufferRef __nonnull)  srcFrame
angle: (int)  angle
mirror: (int)  mirror 

‪向文件视频源逐帧添加视频数据

参数
CVPixelBufferRef‪视频数据
angle‪角度, 为 90 的倍数
mirror‪是否镜像,0 不镜像,1 镜像

◆ setVideoFileFrame:format:width:height:angle:

- (bool) setVideoFileFrame: (NSData *__nonnull)  srcFrame
format: (JCMediaDeviceVideoPixelFormat format
width: (int)  width
height: (int)  height
angle: (int)  angle 

‪向文件视频源逐帧添加视频数据

参数
srcFrame‪画面二进制数据
format‪视频像素格式
width‪宽
height‪高
angle‪角度, 为 90 的倍数
返回
‪是否成功

◆ specifyCamera:

- (void) specifyCamera: (JCMediaDeviceCamera *__nonnull)  camera

@breif 指定要开启的摄像头,在 startCamera 之前调用

参数
camera‪摄像头

◆ specifyCameraAngle:

- (void) specifyCameraAngle: (int)  angle

@breif 指定摄像头采集角度,为90的倍数

参数
angle‪角度

◆ startAudio

- (bool) startAudio

‪启动音频,一般正式开启通话前需要调用此接口

返回
‪成功返回 true,失败返回 false

◆ startAudioInput

- (bool) startAudioInput

‪打开音频输入设备

返回
‪成功返回 true,失败返回 false

◆ startAudioOutput

- (bool) startAudioOutput

‪打开音频输出设备

返回
‪成功返回 true,失败返回 false

◆ startAudioRecordFilePath:fileType:

- (bool) startAudioRecordFilePath: (NSString *_Nullable)  filePath
fileType: (JCAudioCaptureRecordFileType fileType 

‪开始音频录制

参数
filePath‪存储路径
fileType‪文件类型
返回
‪ture表示开启成功,false表示开启失败

◆ startCamera

- (bool) startCamera

@breif 开启摄像头

返回
‪成功返回 true,失败返回 false
参见
- startCamera

◆ startCameraVideo:

- (JCMediaDeviceVideoCanvas* __nullable) startCameraVideo: (int)  type

‪获得预览视频对象,通过此对象能获得视图用于UI显示

参数
type‪渲染模式,JCMediaDeviceRender
返回
JCMediaDeviceVideoCanvas 对象

◆ startScreenShareVideoFile

- (bool) startScreenShareVideoFile

‪开启屏幕共享作为视频输入源

返回
‪是否成功

◆ startVideo:renderType:

- (JCMediaDeviceVideoCanvas* __nullable) startVideo: (NSString *__nonnull)  videoSource
renderType: (int)  type 

‪获得预览视频对象,通过此对象能获得视图用于UI显示

参数
videoSource‪渲染标识串,比如 JCMediaChannelParticipant JCCallItem 中的 renderId
type‪渲染模式,JCMediaDeviceRender
返回
JCMediaDeviceVideoCanvas 对象

◆ startVideo:renderType:view:

- (JCMediaDeviceVideoCanvas* __nullable) startVideo: (NSString *__nonnull)  videoSource
renderType: (int)  type
view: (JCView *__nonnull)  view 

‪获得预览视频对象,通过此对象能获得视图用于UI显示

参数
videoSource‪渲染标识串,比如 JCMediaChannelParticipant JCCallItem 中的 renderId,当videoSource 为 videoFileId 时,内部会调用 startVideoFile
type‪渲染模式,JCMediaDeviceRender
view‪视图view
返回
JCMediaDeviceVideoCanvas 对象

◆ startVideoCaptureRecordFilePath:captureId:fileType:width:height:

- (bool) startVideoCaptureRecordFilePath: (NSString *_Nonnull)  filePath
captureId: (NSString *_Nonnull)  captureId
fileType: (JCVideoCaptureRecordFileType fileType
width: (int)  width
height: (int)  height 

‪开始视频录制

参数
filePath‪存储路径
captureId‪捕获ID
fileType‪文件类型
width‪宽
height‪高
返回
‪ture表示开启成功,false表示开启失败

◆ startVideoFile

- (bool) startVideoFile

‪开启视频文件作为视频输入源,文件和摄像头作为视频输入源只能存在一种,当前摄像头开启的话会关闭摄像头

返回
‪是否成功

◆ stopAudio

- (bool) stopAudio

‪停止音频,一般在通话结束时调用

返回
‪成功返回 true,失败返回 false

◆ stopAudioCaptureRecord

- (bool) stopAudioCaptureRecord

‪停止音频录制

返回
‪ture表示关闭成功,false表示关闭失败

◆ stopAudioInput

- (bool) stopAudioInput

‪关闭音频输入设备

返回
‪成功返回 true,失败返回 false

◆ stopAudioOutput

- (bool) stopAudioOutput

‪关闭音频输出设备

返回
‪成功返回 true,失败返回 false

◆ stopCamera

- (bool) stopCamera

@breif 关闭摄像头

返回
‪成功返回 true,失败返回 false

◆ stopVideo:

- (void) stopVideo: (JCMediaDeviceVideoCanvas *__nonnull)  canvas

‪停止视频

参数
canvasJCMediaDeviceVideoCanvas 对象,由 startVideo 获得

◆ stopVideoCaptureRecordCaptureId:

- (bool) stopVideoCaptureRecordCaptureId: (NSString *_Nonnull)  captureId

‪停止视频录制

参数
captureId‪捕获ID
返回
‪ture表示关闭成功,false表示关闭失败

◆ stopVideoFile

- (bool) stopVideoFile

‪关闭文件视频源

返回
‪ture表示关闭成功,false表示关闭失败

◆ switchCamera

- (bool) switchCamera

@breif 切换摄像头,内部会根据当前摄像头类型来进行切换

返回
‪成功返回 true,失败返回 false

◆ switchCamera:

- (bool) switchCamera: (JCMediaDeviceCamera *__nonnull)  camera

切换指定摄像头

参数
camera‪摄像头

属性说明

◆ audioInterrupt

- (bool) audioInterrupt
readnonatomicassign

是否声音被中断

◆ audioParam

- (JCMediaDeviceAudioParam* __nonnull) audioParam
readwritenonatomicstrong

音频参数

◆ audioStart

- (bool) audioStart
readnonatomicassign

音频是否启动

◆ cameraOpen

- (bool) cameraOpen
readnonatomicassign

摄像头是否打开

◆ cameras

- (NSArray<JCMediaDeviceCamera*>* __nonnull) cameras
readnonatomicassign

摄像头列表

◆ currentCamera

- (JCMediaDeviceCamera* __nullable) currentCamera
readnonatomicassign

当前摄像头

◆ defaultCamera

- (JCMediaDeviceCamera* __nullable) defaultCamera
readwritenonatomicassign

默认摄像头

◆ isAudioInputStart

- (bool) isAudioInputStart
readnonatomicassign

音频输入设备是否打开

◆ isAudioOutputStart

- (bool) isAudioOutputStart
readnonatomicassign

音频输出设备是否打开

◆ useInternalAudioDeviceLogic

- (bool) useInternalAudioDeviceLogic
readwritenonatomicassign

是否使用内部音频设备逻辑

1.打开扬声器 -> 使用扬声器输出声音 2.连上蓝牙耳机 -> 使用蓝牙耳机输出声音,如果扬声器开着则关闭扬声器 3.插入耳机 -> 使用耳机输出声音,如果扬声器开着则关闭扬声器 4.蓝牙耳机和有线耳机以最后连上的作为输出 5.关闭扬声器 -> (蓝牙耳机|有线耳机) > 听筒

◆ videoAngle

- (JCMediaDeviceVideoAngel) videoAngle
readwritenonatomicassign

视频角度

◆ videoFileId

- (NSString* __nonnull) videoFileId
readnonatomicstrong

视频文件作为本地视频源的渲染标识

◆ videoFileOpen

- (bool) videoFileOpen
readnonatomicassign

文件播放是否打开


该类的文档由以下文件生成:
  • /Users/yangxiangkun/projects/JuphoonCloud/SDK/iOS/JMSDK/JMSDK/JCCommon/JCMediaDevice/JCMediaDevice.h