Public 成员函数 | |
virtual JCMediaDeviceVideoCanvas * | startCameraVideo (void *view, JCMediaDeviceRenderMode mode)=0 |
virtual JCMediaDeviceVideoCanvas * | startVideo (void *view, const char *videoSource, JCMediaDeviceRenderMode mode)=0 |
virtual void | stopVideo (JCMediaDeviceVideoCanvas *canvas)=0 |
virtual bool | startAudio ()=0 |
virtual bool | stopAudio ()=0 |
virtual bool | startCamera ()=0 |
virtual bool | stopCamera ()=0 |
virtual bool | switchCamera (JCMediaDeviceCamera camera)=0 |
virtual void | setCameraProperty (int width, int height, int framerate)=0 |
virtual void | setScreenCaptureProperty (int width, int height, int framerate)=0 |
virtual bool | startVideoFile ()=0 |
virtual void | setVideoFileFrame (BYTE *srcFrame, JCMediaDeviceVideoPixelFormat format, int width, int height)=0 |
virtual bool | stopVideoFile ()=0 |
virtual const char * | getVideoFileId ()=0 |
virtual bool | isCameraOpen ()=0 |
virtual bool | isVideoFileOpen ()=0 |
virtual JCMediaDeviceCamera | getCamera ()=0 |
virtual std::list< JCMediaDeviceCamera > * | getCameras ()=0 |
virtual std::list< JCMediaDeviceAudio > * | getAudioInputs ()=0 |
virtual std::list< JCMediaDeviceAudio > * | getAudioOutputs ()=0 |
virtual std::list< JCMediaDeviceWindow > * | getWindows ()=0 |
virtual std::list< JCMediaDeviceWindow > * | getDesktops ()=0 |
virtual bool | isAudioStart ()=0 |
virtual JCMediaDeviceAudioParam * | getAudioParam ()=0 |
virtual void | setAudioParam (JCMediaDeviceAudioParam *param)=0 |
virtual void | setAudioFrameCallback (JCAudioFrameCallback *callback)=0 |
virtual void | setVideoFrameCallback (JCVideoFrameCallback *callback)=0 |
virtual bool | inputCustomAudioData (int sampleRateHz, int channels, unsigned char *byteBuffer, int len, int playDelayMS, int recDelayMS, int clockDrift)=0 |
virtual bool | getAudioOutputData (int sampleRateHz, int channels, unsigned char *byteBuffer, int len)=0 |
Public 属性 | |
JCMediaDeviceCamera | defaultCamera |
JCMediaDeviceAudio | audioIntput |
JCMediaDeviceAudio | audioOutput |
JCMediaDeviceWindow | screenshareWindow |
详细描述
用于管理设备
成员函数说明
◆ getAudioInputs()
|
pure virtual |
获得当前音频输入设备
- 返回
- 当前音频输入设备
◆ getAudioOutputData()
|
pure virtual |
获取音频输出数据
当 autoStartAudioOutputDevice 为 false 时才可以获取到音频输出数据。 建议在一对一通话状态为连接中时或者加入频道成功后,在子线程不断的调用此方法获取音频输出数据
- 参数
-
sampleRateHz 输出源的采集频率,取值范围:8000,16000,32000,44100,48000 channels 输出源的采样通道数,取值范围:1或2 byteBuffer 字节缓冲区,从媒体层获取的音频输出数据将被存入此缓冲区,需要传入 DirectByteBuffer 对象。缓冲区的容量为(采样频率*采样通道数/100) len 缓冲区数据长度
- 返回
- 是否正常调用
- true: 正常执行调用流程
- false: 调用失败
◆ getAudioOutputs()
|
pure virtual |
获得当前音频输出设备
- 返回
- 当前音频输出设备
◆ getAudioParam()
|
pure virtual |
获得音频参数
- 返回
- JCMediaDeviceAudioParam 音频参数
◆ getCamera()
|
pure virtual |
获取当前的摄像头
- 返回
- JCMediaDeviceCamera 对象,当前摄像头
◆ getCameras()
|
pure virtual |
获取摄像头列表
- 返回
- 摄像头列表
◆ getDesktops()
|
pure virtual |
获得当前桌面列表
- 返回
- 当前桌面列表
◆ getVideoFileId()
|
pure virtual |
获取文件视频源渲染id
- 返回
- 文件视频源渲染id
◆ getWindows()
|
pure virtual |
获得当前窗口列表
- 返回
- 当前窗口列表
◆ inputCustomAudioData()
|
pure virtual |
将音频输入数据输入到媒体层
当 autoStartAudioInputDevice 为 false 时才可以将音频输入数据输入到媒体层。 建议在一对一通话状态为连接中时或者加入频道成功后,在子线程不断的调用此方法传入音频数据
- 参数
-
sampleRateHz 外部输入源的采样频率,取值范围:8000,16000,32000,44100,48000 channels 外部输入源的采样通道数,取值范围:1或2 byteBuffer 外部采集数据 len 外部采集数据长度 playDelayMS 播放延时 一般设为0 recDelayMS 采集延时 一般设为0 clockDrift 时钟漂移 一般设为0
- 返回
- 是否正常调用
- true: 正常执行调用流程
- false: 调用失败
◆ isAudioStart()
|
pure virtual |
音频是否已打开
- 返回
- 音频是否已打开
- true: 已打开
- false: 未打开
◆ isCameraOpen()
|
pure virtual |
摄像头是否已打开
- 返回
- 摄像头是否打开
- true: 已打开
- false: 未打开
◆ isVideoFileOpen()
|
pure virtual |
文件视频源是否已开启
- 返回
- 文件视频源是否已开启
- true: 已开启
- false: 未开启
◆ setAudioFrameCallback()
|
pure virtual |
设置语音观测器对象
该方法用于设置语音观测器对象,即注册回调。当需要 SDK 给出 onAudioInputFrame 或 onAudioOutputFrame 回调时,需要使用该方法注册回调。该方法需要在加入频道前或开始通话前调用
- 参数
-
callback JCAudioFrameCallback 对象。传入 null 表示取消注册。我们建议在收到 onLeave 或 onStop 或 onCallItemRemove 后调用,来释放语音观测器对象
◆ setAudioParam()
|
pure virtual |
设置音频参数
- 参数
-
param 音频参数
◆ setCameraProperty()
|
pure virtual |
设置摄像头采集属性
在调用 startSelfVideo 方法或 startVideo 方法开启自身视频渲染前设置即可生效
- 参数
-
width 采集宽度,默认640 height 采集高度,默认360 frameRate 采集帧速率,默认24
◆ setScreenCaptureProperty()
|
pure virtual |
设置屏幕共享采集属性
在调用 enableScreenOrWindowShare 方法开启屏幕共享前设置即可生效
- 参数
-
width 采集宽度,默认1280 height 采集高度,默认720 frameRate 采集帧速率,默认10
◆ setVideoFileFrame()
|
pure virtual |
逐帧采集视频画面
调用此方法时要保证文件视频源已开启
- 参数
-
data 画面二进制数据 format 视频像素格式 width 宽 height 高
◆ setVideoFrameCallback()
|
pure virtual |
设置视频观测器对象
该方法用于设置视频观测器对象,即注册回调。当需要 SDK 给出 onVideoCaptureFrame 或 onVideoRenderFrame 回调时,需要使用该方法注册回调。 该方法需要在加入频道前或开始通话前调用
- 参数
-
callback JCVideoFrameCallback 对象。传入 null 表示取消注册。我们建议在收到 onLeave 或 onStop 或 onCallItemRemove 后调用,来释放语音观测器对象
◆ startAudio()
|
pure virtual |
启动音频
在通话连接中或者加入频道成功时,内部会自动调用此方法来启动音频
- 返回
- 调用是否成功
- true:正常执行调用流程
- false:调用失败
◆ startCamera()
|
pure virtual |
开启摄像头
- 返回
- 调用是否成功
- true:正常执行调用流程,存在以下两种场景:
- 若调用此方法前摄像头已打开,不会收到通知
- 若调用此方法前摄像头未打开,会收到 onCameraUpdate 通知
- false:调用失败,不会收到通知
- true:正常执行调用流程,存在以下两种场景:
◆ startCameraVideo()
|
pure virtual |
开始自身视频渲染
获取本端视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示
一对一通话建议使用 startSelfVideo 方法代替,频道建议使用 startVideo 方法代替
- 参数
-
renderType 渲染模式: - JCMediaDeviceRenderModeFullScreen : 铺满窗口
- JCMediaDeviceRenderModeFullContent : 全图像显示,会有黑边
- JCMediaDeviceRenderModeFullAuto : 自适应
- 返回
- JCMediaDeviceVideoCanvas 对象:开始自身视频渲染成功
- NULL:开始自身视频渲染失败
◆ startVideo()
|
pure virtual |
开始其他端的视频渲染
获取其他端的视频预览对象 JCMediaDeviceVideoCanvas ,通过此对象能获得视图用于UI显示
一对一通话建议使用 startOtherVideo 方法代替,频道建议使用 startVideo 方法代替
- 参数
-
videoSource 渲染标识串,通过 JCMediaChannelParticipant 的 getRenderId 方法和 JCCallItem 的 getRenderId 方法可以得到 renderType 渲染模式: - JCMediaDeviceRenderModeFullScreen : 铺满窗口
- JCMediaDeviceRenderModeFullContent : 全图像显示,会有黑边
- JCMediaDeviceRenderModeFullAuto : 自适应
◆ startVideoFile()
|
pure virtual |
开启视频文件作为视频输入源
- 注解
- 加入会议前或者一对一通话接听前调用
- 文件和摄像头作为视频输入源只能存在一种,如果当前摄像头已开启的话会关闭摄像头
- 返回
- 调用是否成功,存在以下两种场景:
- true:正常执行调用流程
- 若调用此方法时文件视频源已开启,则不会收到回调
- 若调用此方法时文件视频源还未开启,则会收到 onCameraUpdate 回调
- false:调用失败,不会收到回调
- true:正常执行调用流程
◆ stopAudio()
|
pure virtual |
停止音频
在通话挂断时或者离开频道时,内部会自动调用此方法来停止音频
- 返回
- 调用是否成功
- true:正常执行调用流程
- false:调用失败
◆ stopCamera()
|
pure virtual |
关闭摄像头
- 返回
- 调用是否成功
- true:正常执行调用流程,存在以下两种场景:
- 若调用此方法前摄像头已打开,会收到 onCameraUpdate 通知
- 若调用此方法前摄像头未打开,不会收到通知
- false:调用失败
- true:正常执行调用流程,存在以下两种场景:
◆ stopVideo()
|
pure virtual |
停止视频渲染
一对一通话建议使用 stopSelfVideo 和 stopOtherVideo 方法代替,频道建议使用 stopVideo 方法代替
- 参数
-
canvas JCMediaDeviceVideoCanvas 对象,由 startVideo 和 startCameraVideo 返回
◆ stopVideoFile()
|
pure virtual |
关闭逐帧采集画面
- 返回
- 调用是否成功
- true:正常执行调用流程,存在以下两种场景:
- 若调用此方法时文件视频源已关闭,不会收到回调
- 若调用此方法时文件视频源未关闭,则会收到 onCameraUpdate 回调
- false:调用失败,不会收到回调
- true:正常执行调用流程,存在以下两种场景:
◆ switchCamera()
|
pure virtual |
切换摄像头
调用此方法时需要保证摄像头已打开并且摄像头数大于0,否则将直接返回 false
- 参数
-
camera 摄像头
- 返回
- 调用是否成功
- true:正常执行调用流程
- 摄像头个数为1,不会收到回调
- 摄像头个数大于1,会收到 onCameraUpdate 通知
- false:调用失败,不会收到回调
- true:正常执行调用流程
类成员变量说明
◆ audioIntput
JCMediaDeviceAudio JCMediaDevice::audioIntput |
默认音频输入
◆ audioOutput
JCMediaDeviceAudio JCMediaDevice::audioOutput |
默认音频输出
◆ defaultCamera
JCMediaDeviceCamera JCMediaDevice::defaultCamera |
默认摄像头
◆ screenshareWindow
JCMediaDeviceWindow JCMediaDevice::screenshareWindow |
默认屏幕分享窗口
该类的文档由以下文件生成:
- SDK/all/include/JCMediaDevice.h