音视频设备管理

Properties

defaultSpeakerOn: boolean = false

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

defaultCamera: JRTCMediaDeviceCamera

默认摄像头

音频参数

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

Methods

  • 创建 JRTCMediaDevice 对象

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

    Parameters

    Returns JRTCMediaDevice

    JRTCMediaDevice 对象

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

    "JRTCClient、JRTCMediaDeviceCallback 任意一个参数传空就会调用失败"

  • 销毁 JRTCMediaDevice 对象

    Returns void

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

  • 摄像头是否打开

    Returns boolean

    摄像头是否打开

  • 是否开启扬声器

    Returns boolean

    是否开启扬声器

  • 音频输入是否打开

    Returns boolean

    摄像头是否打开

  • 音频输出是否打开

    Returns boolean

    摄像头是否打开

  • 启动音频

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 停止音频

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 打开音频输入设备

    Returns boolean

    调用是否成功

    • true: 调用成功
    • false: 调用失败

    默认开启自适应回声消除和自动增益控制

  • 关闭音频输入

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 打开音频输出设备

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 关闭音频输出设备

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 开启摄像头

    Returns Promise<boolean>

    接口调用结果

    • true: 接口调用成功
    • 若调用此方法前摄像头已打开,不会收到回调通知
    • 若调用此方法前摄像头未打开,会收到 onCameraUpdate 回调
    • false: 接口调用异常

    调用此方法时需要保证默认摄像头不为空,即 defaultCamera 不为空,否则将直接返回 false

  • 关闭摄像头

    Returns Promise<boolean>

    接口调用结果

    • true: 接口调用成功
    • 调用此方法前摄像头未打开,不会收到回调通知
    • 调用此方法前摄像头已打开,会收到 onCameraUpdate 回调
    • false: 接口调用异常
  • 切换摄像头

    Returns Promise<boolean>

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常

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

    • 调用此方法时要保证摄像头已打开,否则将直接返回 false
    • 设备拥有两个以上摄像头,否则将直接返回 false
    • 满足以上两个条件后,内部会调用 switchCamera 接口并提供返回值
  • 切换到指定摄像头 @note调用此方法时需要保证摄像头已打开并且摄像头数大于0,否则将直接返回 false

    Parameters

    Returns Promise<boolean>

    接口调用结果

    • true: 接口调用成功
    • 摄像头个数 == 1,不会收到回调
    • 摄像头个数 > 1,会收到 onCameraUpdate 回调
    • false: 接口调用异常,不会收到回调
  • 切换摄像头,用于手机前置和后置摄像头的切换

    Returns Promise<boolean>

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 设置摄像头采集属性

    在调用 startCamera 接口开启摄像头前设置即可生效

    Parameters

    • width: number

      采集宽度, 默认为 640

    • height: number

      采集高度, 默认为 360

    • frameRate: number

      采集帧速率,默认为 24

    Returns void

  • 设置屏幕共享采集属性

    在调用 enableScreenCapture 接口开启屏幕共享前设置即可生效

    Parameters

    • width: number

      采集宽度,默认720

    • height: number

      采集高度,默认1280

    • frameRate: number

      采集帧速率,默认10

    Returns void

  • 开启/关闭扬声器

    Parameters

    • enable: boolean

      开启或关闭扬声器

      • true: 开启
      • false: 关闭

    Returns Promise<boolean>

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

  • 是否开启文件视频源

    Returns boolean

    是否开启文件视频源

    • true: 已开启视频文件作为视频源
    • false: 未开启视频文件作为视频源
  • 获取文件视频源ID

    Returns string

    文件视频源ID

  • 开启视频文件作为视频输入源

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • 若调用此方法时文件视频源已开启,则不会收到回调
    • 若调用此方法时文件视频源还未开启,则会收到 onCameraUpdate 回调
    • false: 接口调用异常,不会收到回调

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

  • 逐帧采集视频画面

    当为 H264 格式时 1. 如果是关键帧需要将 0x67 0x68 0x41 的数据作为一帧传入 2. 关键帧要以固定间隔传入,例如5秒,否则一开始可能有几秒对端无法显示视频

    Parameters

    • data: Buffer

      画面二进制数据

    • format: JRTCMediaDeviceVideoPixelFormat

      视频像素格式

    • width: number

    • height: number

    • angle: number

      90 的倍数

    • mirror: number

      是否镜像

      • 0:不镜像
      • 1:进行左右镜像
    • keyFrame: boolean

      是否为关键帧,针对 format 为 H264

    Returns void

  • 关闭视频文件作为视频输入源

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • 若调用此方法时文件视频源已关闭,不会收到回调
    • 若调用此方法时文件视频源未关闭,则会收到 onCameraUpdate 回调
    • false: 接口调用异常
  • 设置有效的发送镜头旋转角度和本地渲染旋转角度,默认自动随着设备方向旋转

    Parameters

    Returns void

  • 开启视频录制(本地录制,不需要建立通信,不能和音频录制 startAudioRecord 同时开启)

    Parameters

    • streamId: string

      视频流ID, (包括摄像头ID、文件视频源ID、屏幕采集流ID等)

    • recordParam: JRTCRecordVideoCaptureParam

      录制参数

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 关闭视频录制(本地录制,不需要建立通信)

    Parameters

    • streamId: string

      视频流ID (包括摄像头ID、文件视频源ID、屏幕采集流ID等)

    Returns boolean

    关闭视频录制是否成功

  • 关闭音频录制(本地录制,不需要建立通信)

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 恢复录制文件

    Parameters

    • fileDir: string

      录制文件所在本地目录

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常

    使用场景:

    1. 开启音视频录制;
    2. 录制过程中程序出现异常(比如崩溃),导致无法正常关闭音视频录制;
    3. 本地录制目录下生成了录制过程文件,不是一个有效的音视频文件;
    4. 当程序再次启动时可以调用该接口,将录制目录中已经录制的音视频过程文件恢复成有效的音视频文件。
  • 获取屏幕共享采集Id

    Returns string

    屏幕共享采集Id

  • 开启/关闭屏幕采集

    Parameters

    • enable: boolean

      是否开启

    • OptionalenableAudio: boolean

    Returns boolean

    开启/关闭 是否成功

  • 停止所有视频渲染

    Returns void

  • 截图

    Parameters

    • streamId: string

      要截图的视频流ID

    • path: string

      要存放截图的文件路径

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 设置屏幕采集数据为指定图片数据

    Parameters

    • bitmap: ImageBitmap

      替换图片

    Returns void

  • 重置屏幕采集数据

    Returns void

  • 检测音频设备是否正常

    Parameters

    • type: JRTCMediaDeviceDeviceTestType

      音频设备类型

    • fileName: string

      测试扬声器时播放的文件路径,测试麦克风是传 null 即可

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 停止检测音频设备

    Parameters

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常

    开启某项音频设备检测完成后,需停止对应的测试,避免影响后续的音频设备的使用

  • 获取当前本地音量级别,音量级别范围为0-100,用以测试设备 目前只在开始麦克风检测,或者当房间内有输入音频时,才能获取到有效的音量级别

    Returns number

    麦克风音量级别,返回-1获取失败

  • 获取当前扬声器音量级别,音量级别范围为0-100,用以测试设备 目前只在开始扬声器检测,或者当房间内有输出音频时,才能获取到有效的音量级别

    Returns number

    扬声器音量级别,返回-1获取失败

  • 获取当前噪声强度 环境平均噪声强度(1s), 检测需要打开麦克风 startAudio 或者 startAudioInput

    Returns number

    噪声强度

    • -1:获取失败
    • 0-50dB:噪声非常微弱
    • 50-60dB:噪声较弱
    • 60-70dB:噪声较强
    • 70dB以上:噪声非常强
  • 获取当前信噪比强度 环境平均信噪比强度(1s), 检测需要打开麦克风 startAudio 或者 startAudioInput

    Returns number

    噪声强度

    • -1:获取失败
    • 0-20dB:噪声明显,语音含糊,较难听清
    • 20-40dB:语音基本能听清,但有一定的噪声
    • 40dB以上:语音非常清晰
  • 开始播放音频

    Parameters

    • filePath: string

      音频文件路径,支持pcm,wav的格式(需要单声道,采样率16K音频文件)

    • isLoop: boolean

      是否循环播放

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常

    不管是否在通话中,该音频播放只有本地可以听到

  • 结束播放音频

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常
  • 开始/结束播放本地音频文件作为音频源输入

    Parameters

    • enable: boolean

      开始或者结束

    • filePath: string

      音频文件路径,支持pcm,wav的格式(需要单声道,采样率16K音频文件)

    • loop: boolean

      是否循环播放

    Returns boolean

    接口调用结果

    • true: 接口调用成功
    • false: 接口调用异常

    如果用户正在通话中,该音频将播放到通话内,通话中所有成员包括自己都能听到

    重复调用会覆盖

  • 暂停/继续播放语音文件作为音频源输入

    Parameters

    • suspend: boolean

      true:暂停播放

      • false:继续播放

    Returns boolean

    调用是否正常

    • true:正常执行调用流程
    • false:调用异常
  • 设置开启自适应回声消除

    Parameters

    • aecOn: boolean

      是否开启自适应回声消除

    Returns void

    需要在打开音频输入设备 startAudioInput 或者 startAudio 前调用才生效

  • 设置是否开启自动增益控制

    Parameters

    • agcOn: boolean

      是否开启自动增益控制

    Returns void

    需要在打开音频输入设备 startAudioInput 或者 startAudio 前调用才生效

  • 开启内存检测

    Parameters

    • period: number

      检测周期,单位秒

    Returns void

  • 停止内存检测

    Returns void