实时音视频

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

    音视频采集

    最近更新时间: 2023-12-18 15:12:05

    本部分介绍音视频 Track 的创建及采集等功能的使用。

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

    摄像头视频 Track

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

    QNRTC.createCameraVideoTrack({
        bitrate: 800,
        height: 480,
        width: 640
    })
    

    其中可以传入 QNCameraVideoTrackConfig 对象修改默认配置。

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

    开始/停止摄像头采集

    通过调用 QNCameraVideoTrack.startCapture 接口进行摄像头采集,通过调用 QNCameraVideoTrack.stopCapture 接口停止摄像头采集。

    const cameraVideoTrack = QNRTC.createCameraVideoTrack()
    cameraVideoTrack.startCapture()
    cameraVideoTrack.stopCapture()
    

    创建 Track 后, sdk 会自动采集,由于 AndroidiOS 中的相机资源是单例的,若应用占用了相机资源则会导致其他应用无法获取到相机资源,SDK 支持在通话过程中可以通过 QNCameraVideoTrack.startCapture 获取相机资源,通过 QNCameraVideoTrack.stopCapture 释放相机资源。

    预览窗口

    通过在 nvue 中添加原生组件,即可在试图中预览摄像头采集的窗口

    <QNRTC-UniPlugin-SurfaceView :local="0" :identifyID="cameraVideoTrack.identifyID" :trackID="cameraVideoTrack.trackID"></QNRTC-UniPlugin-SurfaceView>
    
    • local: 0 本地 track 视图,1 远端 track 视图
    • identifyID: uniapp 中每个 track 的唯一标识符
    • trackID: 服务器对于每个 track 的唯一标识符(track 未发布时该值为"")

    开启/关闭闪光灯

    通过调用 QNCameraVideoTrack.turnLightOn 接口开启闪光灯,通过调用 QNCameraVideoTrack.turnLightOff 接口关闭闪光灯:

    cameraVideoTrack.turnLightOn()
    cameraVideoTrack.turnLightOff()
    

    切换摄像头

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

    cameraVideoTrack.switchCamera()
    

    设置缩放

    通过调用 QNCameraVideoTrack.setZoom 接口对相机采集的画面进行缩放。需要注意的是 setZoom 里的参数必须是通过调用 QNCameraVideoTrack.getZoom 接口获取到的列表范围内的数值,如果 QNCameraVideoTrack.getZooms 接口获取到的列表为空,即代表不支持缩放设置:

    cameraVideoTrack.setZoom()
    

    屏幕共享视频 Track

    QNScreenVideoTrack 为屏幕共享的本地 track,录屏连麦的主要步骤如下:

    判断设备是否支持屏幕共享

    屏幕共享依赖系统版本,可通过 SDK 提供的如下接口判断是否支持:

    const track = QNRTC.createScreenVideoTrack()
    const isSupported track.isScreenCaptureSupported()
    

    发起屏幕共享请求

    由于 iOS 与 Android 系统的差异,在 Android 中需要发起屏幕共享请求,iOS 可跳过此步骤:

    const track = QNRTC.createScreenVideoTrack()
    track.requestPermission((res) => {
        if(res) {
            // 请求成功
        }else {
            // 请求失败
        }
    })
    

    麦克风音频 Track

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

    QNRTC.createMicrophoneAudioTrack({
        bitrate: 24
    })
    

    可以传入 QNMicrophoneAudioTrackConfig 对象进行参数配置。

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