实时音视频

  • 实时音视频 > 使用指南 > HarmonyOS >音视频采集

    音视频采集

    最近更新时间: 2024-11-01 11:28:00

    音视频 Track 为音视频交互的基本单位,本部分介绍音视频 Track 的创建及采集等功能的使用。

    • 一路 Track 代表一路音频或者视频的数据
    • SDK 支持创建并发布多路视频 Track,但是仅支持同时创建一路音频 Track,重复创建将会失败

    摄像头视频 Track

    QNCameraVideoTrack 为摄像头采集的本地 Track,其创建方式如下:

    et cameraConfig = new QNCameraVideoTrackConfig()
    let videoCaptureConfig = new QNVideoCaptureConfig()
    let videoEncodeConfig = new QNVideoEncoderConfig()
    cameraConfig.captureConfig = videoCaptureConfig
    cameraConfig.encoderConfig = videoEncodeConfig
    this.cameraTrack = QNRTC.CreateCameraVideoTrack(cameraConfig)
    

    其中,QNVideoEncoderConfig 用来配置视频的编码参数,包括分辨率、帧率和码率(kbps)等。

    注意:编码分辨率配置 videoEncodeSize 时,需要同步设置预览分辨率 videoFormat,保证预览分辨率的宽高大于编码分辨率的宽高,否则设置不生效。

    在创建好 QNCameraVideoTrack 之后,就可以通过调用 SDK 提供的相关方法进行摄像头的相关操作:

    开始/停止摄像头采集

    通过调用 QNCameraVideoTrack.StartCapture 接口进行摄像头采集,通过调用 QNCameraVideoTrack.StopCapture 接口停止摄像头采集,通过 XComponent 添加 QNComponentController 设置摄像头采集的预览视图。

    let ret: number = this.cameraTrack.StartCapture()
    let ret: number = this.cameraTrack.StopCapture()
    

    注意:App 在进退前后台的过程中,进入后台需要通过调用 StopCapture 停止采集,回到前台调用 StartCapture 恢复采集。

    开启/关闭预览

    通过调用 QNCameraVideoTrack.Play 接口进行预览画面的开关控制:

    // 开启预览
    let ret: number = this.cameraTrack.Play(componentController)
    // 关闭预览
    let ret: number = this.cameraTrack.Play(null)
    

    开启/关闭手电筒

    通过 QNCameraVideoTrack.TurnLightOn 接口开启手电筒

    let ret: number = this.cameraTrack.TurnLightOn
    

    通过 QNCameraVideoTrack.TurnLightOff 接口关闭手电筒

    let ret: number = this.cameraTrack.TurnLightOff
    

    切换摄像头

    通过调用 QNCameraVideoTrack.SwitchCamera 接口进行摄像头的切换。

    let ret: number = this.cameraTrack.SwitchCamera(this.switchCameraCallback)
    
    private switchCameraCallback: QNCameraSwitchResultCallback = (facing, errorMessage) => {
      console.log("switch camera callback ", QNCameraFacing[facing], errorMessage)
    }
    

    设置缩放

    通过设置属性 QNCameraVideoTrack.SetZoom 对相机采集的画面进行缩放。

    注意:设置的数值需要小于等于 GetSupportZooms(),如果大于会设置失败

    let ret: number = this.cameraTrack.SetZoom = 1.0
    

    麦克风音频 Track

    QNMicrophoneAudioTrack 为麦克风采集的音频 ,如需以麦克风采集数据作为音频源,仅需创建一个 QNMicrophoneAudioTrack 为麦克风采集的音频 Track 并发布即可,其创建方式如下:

    let micTrackConfig = new QNMicrophoneAudioTrackConfig()
    micTrackConfig.audioQuality = new QNAudioQuality()
    this.micTrack = QNRTC.CreateMicrophoneAudioTrack(micTrackConfig)
    

    其中,QNAudioQuality 代表音频的质量参数,包括编码码率。

    注意:SDK 当前仅支持一路音频 Track,因此,在创建了 QNMicrophoneAudioTrack 之后,将无法再创建。

    示例代码

    音视频采集场景的示例代码可参考 API-Examples-HarmonyOS

    以上内容是否对您有帮助?
  • Qvm free helper
    Close