JCSDK-C#
Public 成员函数 | 静态 Public 成员函数 | 属性 | 所有成员列表
JCSDK.JCMediaDevice.JCMediaDevice类 参考

用于管理摄像头、扬声器等设备 更多...

Public 成员函数

JCMediaDeviceVideoCanvas StartCameraVideo (JCMediaDeviceCamera camera, JCMediaDeviceRenderMode mode)
 开始自身视频渲染 获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示 更多...
 
JCMediaDeviceVideoCanvas StartCameraVideo (JCMediaDeviceCamera camera, JCMediaDeviceRenderMode mode, ZmfBitmap.ResizeHandler resize, ZmfBitmap.RotateHandler rotate)
 开始自身视频渲染 获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示 更多...
 
JCMediaDeviceVideoCanvas StartCameraVideo (string cameraId, JCMediaDeviceRenderMode mode)
 开始自身视频渲染 获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示 更多...
 
JCMediaDeviceVideoCanvas StartVideo (string videoSource, JCMediaDeviceRenderMode mode)
 开始其他端的视频渲染 获取其他端的视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示 更多...
 
JCMediaDeviceVideoCanvas StartVideo (string videoSource, JCMediaDeviceRenderMode mode, ZmfBitmap.ResizeHandler resize, ZmfBitmap.RotateHandler rotate)
 开始其他端的视频渲染 获取其他端的视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示 更多...
 
void StopVideo (JCMediaDeviceVideoCanvas canvas)
 停止视频渲染 更多...
 
bool StartAudio ()
 启动音频,一般正式开启通话前需要调用此接口 更多...
 
bool StopAudio ()
 停止音频,一般在通话结束时调用 更多...
 
bool StartSelfHelpRecord (string recordPath, string cameraId)
 开始自助双录 更多...
 
bool StartSelfHelpRecord (string recordPath, string cameraId, int width, int height, int fps, int bitrate)
 开始自助双录 更多...
 
bool AttachSelfHelpRecordCaptureSource (string capture)
 将新一路视频流合并到录制文件,需跟StartSelfHelpRecord配合使用 更多...
 
bool DetachSelfHelpRecordCaptureSource (string capture)
 解除录制中的一路视频,需跟AttachSelfHelpRecordCaptureSource配合使用 更多...
 
bool StopSelfHelpRecord ()
 关闭自助双录 更多...
 
bool EnableLoopback (bool enable)
 操作loopback采集 更多...
 
bool StartInput (JCMediaDeviceInput input)
 打开输入设备 更多...
 
bool StopInput (JCMediaDeviceInput input)
 关闭输入设备 更多...
 
bool StartOutput (JCMediaDeviceOutput output)
 打开输出设备 更多...
 
bool StopOutput ()
 关闭输出设备 更多...
 
bool StartCamera (string cameraId)
 开启摄像头 更多...
 
bool StartCamera (JCMediaDeviceCamera camera)
 开启摄像头 更多...
 
bool StopCamera ()
 关闭摄像头 更多...
 
bool StopCamera (string cameraID)
 关闭指定的摄像头 更多...
 
bool SwitchCamera (JCMediaDeviceCamera camera)
 切换摄像头 内部会根据当前摄像头类型来进行切换 更多...
 
void SetCameraProperty (int width, int height, int framerate)
 设定摄像头分辨率 在调用StartCamera 接口之前调用才会生效 更多...
 
void SetScreenCaptureProperty (int width, int height, int framerate)
 设置屏幕桌面共享采集属性 在调用 EnableScreenOrWindowsShare 方法开启屏幕共享前设置即可生效 更多...
 
bool EnableScreenOrWindowCapture (bool enable, string videoSource)
 开启关闭桌面或窗口采集 更多...
 
bool EnableScreenOrWindowsAreaCapture (bool enable, string captureId, int iFrameRate, int top, int bottom, int left, int right)
 开启关闭区域共享 更多...
 
bool StartVideoFile ()
 开启视频文件作为视频输入源 文件和摄像头作为视频输入源只能存在一种,当前摄像头开启的话会关闭摄像头 更多...
 
void SetVideoFileFrame (byte[] srcFrame, JCMediaDeviceVideoPixelFormat format, int width, int height)
 逐帧采集视频画面 更多...
 
bool StopVideoFile ()
 关闭逐帧采集画面 更多...
 
bool SnapshotWithRenderId (string renderId, string path)
 截图 更多...
 
bool SnapshotWithRenderId (string renderId, string path, int width, int height)
 截图 更多...
 
Dictionary< string, string > GetVersion ()
 SDK版本信息 更多...
 
bool StartFileRecordVideo (string recordPath, string cameraId, int width, int height)
 本地录制 更多...
 
void StopFileRecord (string cameraId)
 停止本地录制 更多...
 

静态 Public 成员函数

static JCMediaDevice Create (JCClient.JCClient client, JCMediaDeviceCallback callback)
 创建JCMediaDevice实例 JCMediaDevice 的所有接口函数,如无特殊说明,都建议在主线程调用 更多...
 
static JCMediaDevice Create (JCMediaDeviceCallback callback)
 创建JCMediaDevice实例 JCMediaDevice 的所有接口函数,如无特殊说明,都建议在主线程调用 更多...
 
static void Destroy ()
 销毁 JCMediaDevice实例 该方法为同步调用,需要等待 JCMediaDevice 实例资源释放后才能执行其他方法,调用此方法后,你将无法再使用 JCMediaDevice 的其他方法和回调 我们不建议在 JCSDK 的回调中调用此方法销毁 JCMediaDevice 对象,否则会引起崩溃 如需在销毁后再次创建 JCMediaDevice 实例,需要等待Destroy 方法执行结束后再创建实例 更多...
 

属性

string VideoFileId [get]
 共享视频文件时的captureId 更多...
 
List< JCMediaDeviceInputAudioInputs [get]
 获取当前音频输入设备 更多...
 
JCMediaDeviceOutput AudioOutput [get]
 获取当前音频输出设备 更多...
 
bool CameraOpen [get]
 摄像头是否打开 更多...
 
bool VideoFileOpen [get]
 是否在采集视频文件 更多...
 
JCMediaDeviceCamera Camera [get]
 当前摄像头 更多...
 
List< JCMediaDeviceCameraCameras [get]
 当前打开的摄像头列表(支持多摄像头采集) 更多...
 
JCMediaDeviceInput DefaultInput [get, set]
 默认输入设备 更多...
 
JCMediaDeviceOutput DefaultOutput [get, set]
 默认输出设备 更多...
 
List< JCMediaDeviceCameraCameraDevices [get]
 摄像头列表 更多...
 
List< JCMediaDeviceInputAudioInputDevices [get]
 音频输入设备列表 更多...
 
List< JCMediaDeviceOutputAudioOutputDevices [get]
 音频输出设备列表 更多...
 
List< JCMediaDeviceWindowWindowsDevices [get]
 窗口列表 更多...
 
List< JCMediaDeviceDesktopDesktopDevices [get]
 桌面列表 更多...
 

详细描述

用于管理摄像头、扬声器等设备

成员函数说明

◆ AttachSelfHelpRecordCaptureSource()

bool JCSDK.JCMediaDevice.JCMediaDevice.AttachSelfHelpRecordCaptureSource ( string  capture)

将新一路视频流合并到录制文件,需跟StartSelfHelpRecord配合使用

参数
capture视频id
返回
接口调用成功失败

◆ Create() [1/2]

static JCMediaDevice JCSDK.JCMediaDevice.JCMediaDevice.Create ( JCClient.JCClient  client,
JCMediaDeviceCallback  callback 
)
static

创建JCMediaDevice实例 JCMediaDevice 的所有接口函数,如无特殊说明,都建议在主线程调用

  • 调用此方法创建 JCMediaDevice 对象后,期间没有调用过 Destroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JCMediaDevice 对象
  • 调用此方法前确保 JCClient 已完成初始化
参数
clientJCClient实例
callbackJCMediaDeviceCallback回调函数,用于接收JCMediaDevice相关事件
返回
JCMediaDevice实例

◆ Create() [2/2]

static JCMediaDevice JCSDK.JCMediaDevice.JCMediaDevice.Create ( JCMediaDeviceCallback  callback)
static

创建JCMediaDevice实例 JCMediaDevice 的所有接口函数,如无特殊说明,都建议在主线程调用

调用此方法创建 JCMediaDevice 对象后,期间没有调用过Destroy方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JCMediaDevice 对象

参数
callbackJCMediaDeviceCallback回调函数,用于接收JCMediaDevice相关事件
返回
JCMediaDevice实例

◆ Destroy()

static void JCSDK.JCMediaDevice.JCMediaDevice.Destroy ( )
static

销毁 JCMediaDevice实例 该方法为同步调用,需要等待 JCMediaDevice 实例资源释放后才能执行其他方法,调用此方法后,你将无法再使用 JCMediaDevice 的其他方法和回调 我们不建议在 JCSDK 的回调中调用此方法销毁 JCMediaDevice 对象,否则会引起崩溃 如需在销毁后再次创建 JCMediaDevice 实例,需要等待Destroy 方法执行结束后再创建实例

◆ DetachSelfHelpRecordCaptureSource()

bool JCSDK.JCMediaDevice.JCMediaDevice.DetachSelfHelpRecordCaptureSource ( string  capture)

解除录制中的一路视频,需跟AttachSelfHelpRecordCaptureSource配合使用

参数
capture视频id
返回
接口调用成功失败

◆ EnableLoopback()

bool JCSDK.JCMediaDevice.JCMediaDevice.EnableLoopback ( bool  enable)

操作loopback采集

参数
enable是否打开
返回
操作是否成功
  • true:操作成功
  • false:操作失败

◆ EnableScreenOrWindowCapture()

bool JCSDK.JCMediaDevice.JCMediaDevice.EnableScreenOrWindowCapture ( bool  enable,
string  videoSource 
)

开启关闭桌面或窗口采集

参数
enable打开或关闭桌面或窗口共享
  • true: 开启
  • false: 关闭
videoSource窗口id或屏幕id
返回
调用是否成功
  • true:正常执行调用流程
  • false:调用失败

◆ EnableScreenOrWindowsAreaCapture()

bool JCSDK.JCMediaDevice.JCMediaDevice.EnableScreenOrWindowsAreaCapture ( bool  enable,
string  captureId,
int  iFrameRate,
int  top,
int  bottom,
int  left,
int  right 
)

开启关闭区域共享

参数
enable开启或是关闭
captureId窗口或者屏幕的id
iFrameRate帧率
top上边距
bottom下边距
left左边距
right右边距
返回
接口调用结果
  • true 调用成功
  • false 调用失败

◆ GetVersion()

Dictionary<string, string> JCSDK.JCMediaDevice.JCMediaDevice.GetVersion ( )

SDK版本信息

返回
SDK 版本

◆ SetCameraProperty()

void JCSDK.JCMediaDevice.JCMediaDevice.SetCameraProperty ( int  width,
int  height,
int  framerate 
)

设定摄像头分辨率 在调用StartCamera 接口之前调用才会生效

参数
width摄像头分辨率宽
height摄像头分辨率高
framerate帧速率

◆ SetScreenCaptureProperty()

void JCSDK.JCMediaDevice.JCMediaDevice.SetScreenCaptureProperty ( int  width,
int  height,
int  framerate 
)

设置屏幕桌面共享采集属性 在调用 EnableScreenOrWindowsShare 方法开启屏幕共享前设置即可生效

参数
width采集宽度
height采集高度
framerate帧速率

◆ SetVideoFileFrame()

void JCSDK.JCMediaDevice.JCMediaDevice.SetVideoFileFrame ( byte[]  srcFrame,
JCMediaDeviceVideoPixelFormat  format,
int  width,
int  height 
)

逐帧采集视频画面

当为 H264 格式时

  1. 如果是关键帧需要将 0x67 0x68 0x41 的数据作为一帧传入
  2. 关键帧要以固定间隔传入,例如5秒,否则一开始可能有几秒对端无法显示视频
参数
srcFrame画面二进制数据
format视频像素格式
width
height

◆ SnapshotWithRenderId() [1/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.SnapshotWithRenderId ( string  renderId,
string  path 
)

截图

参数
renderId要截图的视频id
path要存放的文件路径
返回
截图是否成功
  • true:截图成功
  • false:截图失败

◆ SnapshotWithRenderId() [2/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.SnapshotWithRenderId ( string  renderId,
string  path,
int  width,
int  height 
)

截图

参数
renderId要截图的视频id
path要存放的文件路径
width宽度
height高度
返回
截图是否成功
  • true:截图成功
  • false:截图失败

◆ StartAudio()

bool JCSDK.JCMediaDevice.JCMediaDevice.StartAudio ( )

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

返回
调用是否成功
  • true:正常执行调用流程
  • false:调用失败

◆ StartCamera() [1/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.StartCamera ( JCMediaDeviceCamera  camera)

开启摄像头

参数
camera要开启的摄像头
返回
开启是否成功
  • true:开启成功
  • false:开启失败

◆ StartCamera() [2/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.StartCamera ( string  cameraId)

开启摄像头

参数
cameraId摄像头id
返回
调用是否成功
  • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法前摄像头已打开,不会收到通知
    • 若调用此方法前摄像头未打开,会收到 onCameraUpdate 通知
  • false:调用失败,不会收到通知

◆ StartCameraVideo() [1/3]

JCMediaDeviceVideoCanvas JCSDK.JCMediaDevice.JCMediaDevice.StartCameraVideo ( JCMediaDeviceCamera  camera,
JCMediaDeviceRenderMode  mode 
)

开始自身视频渲染 获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示

参数
camera摄像头对象
mode渲染方式
返回
JCMediaDeviceVideoCanvas对象

◆ StartCameraVideo() [2/3]

JCMediaDeviceVideoCanvas JCSDK.JCMediaDevice.JCMediaDevice.StartCameraVideo ( JCMediaDeviceCamera  camera,
JCMediaDeviceRenderMode  mode,
ZmfBitmap.ResizeHandler  resize,
ZmfBitmap.RotateHandler  rotate 
)

开始自身视频渲染 获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示

参数
camera摄像头对象
mode渲染方式
resize渲染参数
rotate渲染参数
返回
JCMediaDeviceVideoCanvas对象

◆ StartCameraVideo() [3/3]

JCMediaDeviceVideoCanvas JCSDK.JCMediaDevice.JCMediaDevice.StartCameraVideo ( string  cameraId,
JCMediaDeviceRenderMode  mode 
)

开始自身视频渲染 获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示

参数
cameraId摄像头id
mode渲染方式
返回
JCMediaDeviceVideoCanvas对象

◆ StartFileRecordVideo()

bool JCSDK.JCMediaDevice.JCMediaDevice.StartFileRecordVideo ( string  recordPath,
string  cameraId,
int  width,
int  height 
)

本地录制

参数
recordPath视频保存路径
cameraId视频流id
width视频宽
height视频高
返回
调用成功失败

◆ StartInput()

bool JCSDK.JCMediaDevice.JCMediaDevice.StartInput ( JCMediaDeviceInput  input)

打开输入设备

参数
input输入设备
返回
打开输入设备成功失败
  • true:打开成功
  • false:打开失败

◆ StartOutput()

bool JCSDK.JCMediaDevice.JCMediaDevice.StartOutput ( JCMediaDeviceOutput  output)

打开输出设备

参数
output输出设备
返回
打开输出设备成功失败
  • true:打开成功
  • false:打开失败

◆ StartSelfHelpRecord() [1/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.StartSelfHelpRecord ( string  recordPath,
string  cameraId 
)

开始自助双录

参数
recordPath生成的录制文件路径
cameraIdcameraId
返回
自助双录打开是否成功
  • true:自助双录打开成功
  • false:自助双录打开失败

◆ StartSelfHelpRecord() [2/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.StartSelfHelpRecord ( string  recordPath,
string  cameraId,
int  width,
int  height,
int  fps,
int  bitrate 
)

开始自助双录

参数
recordPath生成的录制文件路径
cameraIdcameraId
width
height
fpsfps
bitrate码率
返回
自助双录打开是否成功
  • true:自助双录打开成功
  • false:自助双录打开失败

◆ StartVideo() [1/2]

JCMediaDeviceVideoCanvas JCSDK.JCMediaDevice.JCMediaDevice.StartVideo ( string  videoSource,
JCMediaDeviceRenderMode  mode 
)

开始其他端的视频渲染 获取其他端的视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示

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

◆ StartVideo() [2/2]

JCMediaDeviceVideoCanvas JCSDK.JCMediaDevice.JCMediaDevice.StartVideo ( string  videoSource,
JCMediaDeviceRenderMode  mode,
ZmfBitmap.ResizeHandler  resize,
ZmfBitmap.RotateHandler  rotate 
)

开始其他端的视频渲染 获取其他端的视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示

参数
videoSource渲染标识串,比如 JCMediaChannelParticipant JCCallItem 中的 renderId,当videoSource 为 videoFileId 时,内部会调用 startVideoFile
mode渲染模式
resize渲染参数
rotate渲染参数
返回
JCMediaDeviceVideoCanvas对象

◆ StartVideoFile()

bool JCSDK.JCMediaDevice.JCMediaDevice.StartVideoFile ( )

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

返回
调用是否成功
  • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法时文件视频源已开启,则不会收到回调
    • 若调用此方法时文件视频源还未开启,则会收到 OnCameraUpdate 回调
  • false:调用失败,不会收到回调

◆ StopAudio()

bool JCSDK.JCMediaDevice.JCMediaDevice.StopAudio ( )

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

返回
调用是否成功
  • true:正常执行调用流程
  • false:调用失败

◆ StopCamera() [1/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.StopCamera ( )

关闭摄像头

返回
调用是否成功
  • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法前摄像头已打开,会收到 onCameraUpdate 通知
    • 若调用此方法前摄像头未打开,不会收到通知
  • false:调用失败

◆ StopCamera() [2/2]

bool JCSDK.JCMediaDevice.JCMediaDevice.StopCamera ( string  cameraID)

关闭指定的摄像头

返回
调用是否成功
  • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法前摄像头已打开,会收到 onCameraUpdate 通知
    • 若调用此方法前摄像头未打开,不会收到通知
  • false:调用失败

◆ StopFileRecord()

void JCSDK.JCMediaDevice.JCMediaDevice.StopFileRecord ( string  cameraId)

停止本地录制

参数
cameraId视频流id

◆ StopInput()

bool JCSDK.JCMediaDevice.JCMediaDevice.StopInput ( JCMediaDeviceInput  input)

关闭输入设备

返回
关闭是否是否成功
  • true:关闭成功
  • false:关闭失败

◆ StopOutput()

bool JCSDK.JCMediaDevice.JCMediaDevice.StopOutput ( )

关闭输出设备

返回
关闭输出设备成功失败
  • true:关闭成功
  • false:关闭失败

◆ StopSelfHelpRecord()

bool JCSDK.JCMediaDevice.JCMediaDevice.StopSelfHelpRecord ( )

关闭自助双录

返回
自助双录关闭是否成功
  • true:自助双录关闭成功
  • false:自助双录关闭失败

◆ StopVideo()

void JCSDK.JCMediaDevice.JCMediaDevice.StopVideo ( JCMediaDeviceVideoCanvas  canvas)

停止视频渲染

参数
canvasJCMediaDeviceVideoCanvas对象,由StartVideo StartCameraVideo 获得

◆ StopVideoFile()

bool JCSDK.JCMediaDevice.JCMediaDevice.StopVideoFile ( )

关闭逐帧采集画面

返回
调用是否成功
  • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法时文件视频源已关闭,不会收到回调
    • 若调用此方法时文件视频源未关闭,则会收到 OnCameraUpdate 回调
  • false:调用失败,不会收到回调

◆ SwitchCamera()

bool JCSDK.JCMediaDevice.JCMediaDevice.SwitchCamera ( JCMediaDeviceCamera  camera)

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

  • 调用此方法时要保证摄像头已打开,否则将直接返回 false
  • 设备拥有两个以上摄像头,否则将直接返回 true
参数
camera要切换的摄像头
返回
调用是否成功
  • true:正常执行调用流程
  • false:调用失败

属性说明

◆ AudioInputDevices

List<JCMediaDeviceInput> JCSDK.JCMediaDevice.JCMediaDevice.AudioInputDevices
get

音频输入设备列表

◆ AudioInputs

List<JCMediaDeviceInput> JCSDK.JCMediaDevice.JCMediaDevice.AudioInputs
get

获取当前音频输入设备

◆ AudioOutput

JCMediaDeviceOutput JCSDK.JCMediaDevice.JCMediaDevice.AudioOutput
get

获取当前音频输出设备

◆ AudioOutputDevices

List<JCMediaDeviceOutput> JCSDK.JCMediaDevice.JCMediaDevice.AudioOutputDevices
get

音频输出设备列表

◆ Camera

JCMediaDeviceCamera JCSDK.JCMediaDevice.JCMediaDevice.Camera
get

当前摄像头

◆ CameraDevices

List<JCMediaDeviceCamera> JCSDK.JCMediaDevice.JCMediaDevice.CameraDevices
get

摄像头列表

◆ CameraOpen

bool JCSDK.JCMediaDevice.JCMediaDevice.CameraOpen
get

摄像头是否打开

◆ Cameras

List<JCMediaDeviceCamera> JCSDK.JCMediaDevice.JCMediaDevice.Cameras
get

当前打开的摄像头列表(支持多摄像头采集)

◆ DefaultInput

JCMediaDeviceInput JCSDK.JCMediaDevice.JCMediaDevice.DefaultInput
getset

默认输入设备

◆ DefaultOutput

JCMediaDeviceOutput JCSDK.JCMediaDevice.JCMediaDevice.DefaultOutput
getset

默认输出设备

◆ DesktopDevices

List<JCMediaDeviceDesktop> JCSDK.JCMediaDevice.JCMediaDevice.DesktopDevices
get

桌面列表

◆ VideoFileId

string JCSDK.JCMediaDevice.JCMediaDevice.VideoFileId
get

共享视频文件时的captureId

◆ VideoFileOpen

bool JCSDK.JCMediaDevice.JCMediaDevice.VideoFileOpen
get

是否在采集视频文件

◆ WindowsDevices

List<JCMediaDeviceWindow> JCSDK.JCMediaDevice.JCMediaDevice.WindowsDevices
get

窗口列表


该类的文档由以下文件生成: