web版多人视频通话,怎么实现同时推出两个摄像头视频流


#1

没有任何思路,请各位大大们多多提点


#2


看这个demo,是去年火热的在线抓娃娃场景,就是典型的两个摄像头。


#3

我们是web版的,我看这个好像是android的?


#4

一般来说,web想推多路camera流,是需要创建多个client的,一个client推一路流。


#5

我们是前端,请问这个进程是前端创建多个进程吗,需要后端服务同时配合吗


#6

前面说错了,是创建两个client,不是进程。下面是创建屏幕流+摄像头流的代码,创建两个摄像头流其实是同理的,把screen换成camera2即可。

// 创建用于发送屏幕共享流的Client
var screenClient = AgoraRTC.createClient({mode: 'rtc', codec: 'vp8'});
screenClient.init(key, function() {
 screenClient.join(channelKey, channel, null, function(uid) {
  // 创建屏幕共享流 screenStream
  ...
  screenClient.publish(screenStream);
 }
  }

// 创建用于发送视频流的Client
var videoClient = AgoraRTC.createClient({mode: 'rtc', codec: 'vp8'});
videoClient.init(key, function() {
videoClient.join(channelKey, channel, null, function(uid) {
  // 创建视频流 videoStream
  ...
  videoClient.publish(videoStream);
 }
}

#7

谢谢哈,我们试一试,感谢


#10

请问一下。
web端如何检测自己本地摄像设备是否开启?


#11

貌似没有这样的接口,但是初始化时如果设备不可用,会有对应报错的

init

  • init(onSuccess?: function, onFailure?: function): void
  • 初始化音视频对象

该方法初始化本地创建的音视频流对象。如果调用失败,回调函数会返回错误信息,例如: {type: "error", msg: "NotAllowedError", info: "Permission denied"}

msg 字段可能出现以下值:

  • NotAllowedError: 用户拒绝授予对应的摄像头或麦克风权限。
  • MEDIA_OPTION_INVALID: 摄像头被占用或者分辨率不支持(早期浏览器)
  • DEVICES_NOT_FOUND: 没有找到设备
  • NOT_SUPPORTED: 浏览器不支持获取获取摄像头和麦克风
  • PERMISSION_DENIED: 浏览器禁用设备或者用户拒绝打开设备
  • CONSTRAINT_NOT_SATISFIED: 配置参数不合法(早期浏览器)
  • PluginNotInstalledProperly: 用户尝试在 Chrome 上进行屏幕共享,但未安装屏幕共享插件,或使用了错误的 extensionId
  • UNDEFINED: 未定义错误

#12

初始化不报错的,不会返回错误信息


#13

那你现在是遇到什么问题了吗?


#14

检测摄像设备是不是开启了,初始化时候提示一下


于分割了该主题 #15

4 posts were merged into an existing topic: 想使用html5 的video标签,现在使用的span,想改成video。 遇到一个问题


#16

如果初始化多个client在加入房间时候,会有异常吧,因为我是同一个UID加入房间啊


#17


这个问题能回复一下吗