可以获取手机后置摄像头 视频流吗?

1、H5 项目或者用户手机访问 Web 项目,可以通过手机后置摄像头发布视频流吗? 2、切换摄像头时,是否要重新发布资源
发布时间: 2021-12-27 15:42

回答:

1、H5 项目或者用户手机访问 Web 项目,可以通过手机后置摄像头发布视频流吗?

是可以的,实现方案:

a、通过 '@rongcloud/plugin-rtc' 会向外暴露 device 模块

import { device } from '@rongcloud/plugin-rtc'

b、device 模块可以获取摄像头和麦克风列表

//获取 Microphone
const microphones = await device.getMicrophones();
//获取摄像头列表
const cameras = await device.getCameras();
//获取扬声器设备列表
const speakers = await device.getSpeakers()

c、在获取本地资源时就可以通过传入  micphoneId、cameraId 来指定对应的设备,micphoneId、cameraId  可从 b 步骤的列表获取,融云没有 api 区分哪个是前置/后置,默认数值第一个是前置,第二个是后置

//获取音频时指定设备 ID
/**
 * @param tag 资源标识
 * @param IMicphoneAudioProfile.micphoneId 指定麦克风设备 Id
*/
const { code, track: audioTrack } = await rtcClient.createMicrophoneAudioTrack(tag: string = 'RongCloudRTC', options?: IMicphoneAudioProfile)
//获取视频时指定设备 ID
/**
 * @param tag 资源标识
 * @param ICameraVideoProfile.cameraId 指定摄像头设备 Id
*/
const { code, track: videoTrack } = await rtcClient.createCameraVideoTrack(tag: string = 'RongCloudRTC', options?: ICameraVideoProfile)
//同时获取音频,视频时指定设备 ID
/**
 * @param tag 资源标识
 * @param IMicphoneAudioProfile.micphoneId 指定麦克风设备 Id
 * @param ICameraVideoProfile.cameraId 指定摄像头设备 Id
*/
const { code, tracks } = await rtcClient.createMicrophoneAndCameraTracks(tag: string = 'RongCloudRTC', options?: { audio?: IMicphoneAudioProfile, video?: ICameraVideoProfile })


2、切换摄像头时,是否要重新发布资源

如果要换摄像头进行发布流时,需要先取消发布之前的音视频流,然后根据指定设备重新获取音视频资源进行发布