用于管理设备

Properties

audioParam: JCMediaDeviceAudioParam = ...

音频参数

需要在调用 startAudio 方法前设置,即连接通话或加入频道前设置此参数。若不设置此参数,将使用默认值。

defaultCamera: JCMediaDeviceCamera

默认摄像头

defaultSpeakerOn: boolean = false

没有插入耳机或外接蓝牙时是否默认开启扬声器,默认关闭

  • true: 默认开启
  • false: 默认关闭
useInternalAudioDeviceLogic: boolean = true

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

修改⾳频输出设备 audioInputDevice , 务必将该参数设置为false,否则会导致修改⽆法⽣效。 内部音频设备逻辑如下:
1.打开扬声器 - 使用扬声器输出声音
2.连上蓝牙耳机 - 使用蓝牙耳机输出声音,如果扬声器开着则关闭扬声器
3.插入耳机 - 使用耳机输出声音,如果扬声器开着则关闭扬声器
4.蓝牙耳机和有线耳机以最后连上的作为输出
5.关闭扬声器 - (蓝牙耳机或有线耳机) 优于听筒

  • true: 使用内部音频设备逻辑
  • false: 不使用内部音频设备逻辑

Methods

  • 添加回调

    Parameters

    Returns any

  • 销毁对象

    Returns any

  • 是否使用闪光灯

    • true: 开启
    • false:关闭

    Parameters

    • enable: boolean

    Returns boolean

    返回使用结果

  • 开启/关闭屏幕采集

    Parameters

    • enable: boolean

      开启或关闭屏幕共享 - true: 开启 - false: 关闭

    Returns boolean

    调用是否成功

    • true:正常执行调用流程
    • false:调用失败
  • 开启/关闭扬声器

    只有在音频已经启动的情况下调用才会生效

    Parameters

    • enable: boolean

      开启或者关闭扬声器 - true: 开启 - false: 关闭

    Returns any

  • 获取音频输出数据

    autoStartAudioOutputDevice 为 false 时才可以获取到音频输出数据。 建议在一对一通话状态为连接中时或者加入频道成功后,在子线程不断的调用此方法获取音频输出数据

    Parameters

    • sampleRateHz: number

      输出源的采集频率,取值范围:8000,16000,32000,44100,48000

    • channels: number

      输出源的采样通道数,取值范围:1或2

    • byteBuffer: ArrayBuffer

      字节缓冲区,从媒体层获取的音频输出数据将被存入此缓冲区,需要传入 DirectByteBuffer 对象。缓冲区的容量为(采样频率*采样通道数/100)

    Returns boolean

    是否正常调用

    • true: 正常执行调用流程
    • false: 调用失败
  • 获取镜头的当前焦距


    - 调用此方法时要保证摄像头已打开,否则将直接返回 -1

    Returns number

    镜头的当前使用焦距

  • 获取镜头最大焦距


    - 调用此方法时要保证摄像头已打开,否则将直接返回 -1

    Returns number

    镜头的最大焦距

    • 返回小于0, 表示不支持变焦
  • 获取摄像头曝光补偿步长

    Returns number

    获取曝光补偿步长:

  • 获取音频采集音量

    Returns number

    音频采集音量,范围从小到大是(0,100)

  • 获取摄像头曝光补偿最大最小值,单位EV

    Returns number

    最大曝光补偿:

  • 获取摄像头曝光补偿最大最小值,单位EV

    Returns number

    最小曝光补偿:

  • 获取音频播放音量

    Returns number

    音频播放音量,范围从小到大是(0,80)

  • 获取文件视频源渲染id

    Returns string

    文件视频源渲染id

  • 将音频输入数据输入到媒体层

    JCMediaDeviceAudioParam.autoStartAudioInputDevice 为 false 时才可以将音频输入数据输入到媒体层。 建议在一对一通话状态为连接中时或者加入频道成功后,在子线程不断的调用此方法传入音频数据

    Parameters

    • sampleRateHz: number

      外部输入源的采样频率,取值范围:8000,16000,32000,44100,48000

    • channels: number

      外部输入源的采样通道数,取值范围:1或2

    • byteBuffer: ArrayBuffer

      外部采集数据源,需要传入 DirectByteBuffer 对象

    • playDelayMS: number

      播放延时 一般设为0

    • recDelayMS: number

      采集延时 一般设为0

    • clockDrift: number

      时钟漂移 一般设为0

    Returns boolean

    是否正常调用

    • true: 正常执行调用流程
    • false: 调用失败
  • 音频是否已打开

    Returns boolean

    音频是否已打开

    • true: 已打开
    • false: 未打开
  • 查询摄像头是否支持闪光灯

    • true: 支持
    • false:不支持

    Returns boolean

    返回查询结果:

  • 摄像头是否已打开

    Returns boolean

    摄像头是否已打开

    • true: 已打开
    • false: 未打开
  • 扬声器是否已打开

    Returns boolean

    扬声器是否已打开

    • true: 已打开
    • false: 未打开
  • 文件视频源是否已开启

    Returns boolean

    文件视频源是否已开启

    • true: 已开启
    • false: 未开启
  • 删除回调

    Parameters

    Returns any

  • 设置音频模式

    更改硬件AEC(回声消除)的开启状态

    Parameters

    • mode: boolean

      true、false

    Returns boolean

    是否调用成功

  • 设置摄像头采集属性

    在调用 startSelfVideo 方法或 startVideo 方法开启自身视频渲染前设置即可生效

    Parameters

    • width: number

      采集宽度,默认640

    • height: number

      采集高度,默认360

    • frameRate: number

      采集帧速率,默认24

    Returns any

  • 设置变焦


    - 调用此方法时要保证摄像头已打开,否则将直接返回 -1

    Parameters

    • zoomRatio: number

    Returns boolean

    设置是否成功

    • true : 调用接口成功
    • false : 调用失败
  • 设置曝光度

    • true: 成功
    • false:失败

    Parameters

    • level: number

    Returns boolean

    返回设置结果:

  • 设置屏幕共享采集属性

    在调用 enableScreenShare 方法开启屏幕共享前设置即可生效

    Parameters

    • width: number

      采集宽度,默认1280

    • height: number

      采集高度,默认720

    • frameRate: number

      采集帧速率,默认10

    Returns any

  • 逐帧采集视频画面

    调用此方法时要保证文件视频源已开启

    Parameters

    • data: ArrayBuffer

      画面二进制数据

    • format: VideoPixelFormat

      VideoPixelFormat.I420 "视频像素格式"

    • width: number

    • height: number

    • angle: number

      90 的倍数

    • mirror: number

      0 不镜像,1进行左右镜像

    • keyFrame: boolean

      是否为关键帧,针对 format 为 VideoPixelFormat.H264 - true: 关键帧 - false: 不是关键帧

    Returns any

    当 format 为 H264 格式并且是关键帧时:

    • 第一帧一定要包含关键帧,并且需要将 0x67 0x68 0x65 的数据作为完整一帧传入,其中0x67,0x68为pps,0x65为关键帧标识
    • 后续P帧以 0x41 数据形式传入
    • 关键帧要以固定间隔传入,例如5秒,否则一开始可能有几秒对端无法显示视频
  • 截图

    Parameters

    • streamId: string

      要截图的视频流ID

    • path: string

      要存放截图的文件路径

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 启动音频

    在通话连接中或者加入频道成功时,内部会自动调用此方法来启动音频

    Returns boolean

    调用是否成功

    • true:正常执行调用流程
    • false:调用失败
  • 开启摄像头

    Returns Promise<boolean>

    调用是否成功

    • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法前摄像头已打开,不会收到通知
    • 若调用此方法前摄像头未打开,会收到 onCameraUpdate 通知
    • false:调用失败,不会收到通知
  • 开启视频文件作为视频输入源

    Returns boolean

    调用是否成功

    • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法时文件视频源已开启,则不会收到回调
    • 若调用此方法时文件视频源还未开启,则会收到 JCMediaDeviceCallback.onCameraUpdate 回调
    • false:调用失败,不会收到回调
    • 加入会议前或者一对一通话接听前调用
    • 文件和摄像头作为视频输入源只能存在一种,如果当前摄像头已开启的话会关闭摄像头
  • 关闭媒体资源

    Returns any

  • 停止音频

    在通话挂断时或者离开频道时,内部会自动调用此方法来停止音频

    Returns boolean

    调用是否成功

    • true:正常执行调用流程
    • false:调用失败
  • 关闭摄像头

    Returns Promise<boolean>

    调用是否成功

    • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法前摄像头已打开,会收到 onCameraUpdate 通知
    • 若调用此方法前摄像头未打开,不会收到通知
    • false:调用失败
  • 关闭逐帧采集画面

    Returns boolean

    调用是否成功

    • true:正常执行调用流程,存在以下两种场景:
    • 若调用此方法时文件视频源已关闭,不会收到回调
    • 若调用此方法时文件视频源未关闭,则会收到 onCameraUpdate 回调
    • false:调用失败,不会收到回调
  • 切换摄像头

    调用此方法时需要保证摄像头已打开并且摄像头数大于0,否则将直接返回 false

    Parameters

    Returns boolean

    调用是否成功

    • true:正常执行调用流程
    • 摄像头个数为1,不会收到回调
    • 摄像头个数大于1,会收到 onCameraUpdate 通知
    • false:调用失败,不会收到回调
  • 切换摄像头

    内部会根据当前摄像头类型来进行切换
    - 调用此方法时要保证摄像头已打开,否则将直接返回 false - 设备拥有两个以上摄像头,否则将直接返回 true - 满足以上两个条件后,内部会调用 switchCamera 方法并提供返回值

    Returns boolean

    调用是否成功

    • true:正常执行调用流程
    • false:调用失败
  • 创建 JCMediaDevice 对象

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

    Parameters

    Returns JCMediaDevice

    JCMediaDevice 对象

    "JCClient、JCMediaDeviceCallback 任意一个参数传空就会出现调用异常"

    • 调用此方法创建 JCMediaDevice 对象后,期间没有调用过 destroy 方法销毁对象,然后又重复调用此方法,会直接返回第一次创建的 JCMediaDevice 对象
    • 调用此方法前确保 JCClient 已完成初始化,即 getState 方法获取的状态值不等于 ClientState.STATE_NOT_INIT
  • 销毁 JCMediaDevice 对象

    该方法为同步调用,需要等待 JCMediaDevice 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JCMediaDevice 的其它方法和回调。
    我们 **不建议** 在 JCSDK 的回调中调用此方法销毁 JCMediaDevice 对象,有可能会出现崩溃。
    如需在销毁后再次创建 JCMediaDevice 实例,需要等待 destroy 方法执行结束后再创建实例。

    Returns void