音视频采集
本部分介绍音视频 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 会自动采集,由于 Android 和 iOS 中的相机资源是单例的,若应用占用了相机资源则会导致其他应用无法获取到相机资源,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 对象进行参数配置。