WebRTC 与 Agora.io:SwitchCamera?

Posted

技术标签:

【中文标题】WebRTC 与 Agora.io:SwitchCamera?【英文标题】:WebRTC with Agora.io: SwitchCamera? 【发布时间】:2018-09-29 20:19:39 【问题描述】:

我正在使用 Agora.io 构建一个网络应用程序。我希望能够在客户的智能手机上从前置摄像头切换到后置摄像头。我看过 switchCamera 的 agora 文档。我尝试了以下方法:

switchCamera();
myAgoraClient.switchCamera();
localStream.switchCamera();

他们都抛出一个no such function 错误。

agora.io网页版切换摄像头的正确方法是什么?

【问题讨论】:

【参考方案1】:

你可以用2.5 SDK中的switchDevice方法来做到这一点

switchDevice(type: string, deviceId: string, onSuccess: function, onFailure: 函数): void

例如;

localStream.switchDevice("video", "<deviceid>", console.log,console.log)

应该做的工作。我正在尝试同样的事情,但示例包含旧的 2.4 js sdk,您需要专门下载 ^2.5

【讨论】:

【参考方案2】:

我认为最新版本的 Agora Web SDK 没有这些方法。

但是,您可以通过以下方式创建相机列表:

AgoraRTC.getDevices(function(devices)
  cameras = devices.filter(device => device.kind === 'videoinput');
);

然后给switchCamera一个实现:

function switchCamera()
    cameraIndex = (++cameraIndex) % cameras.length;

使用cameras[cameraIndex].deviceId 作为cameraId 创建一个新的本地视频流并将其发布出去。

【讨论】:

Agora 技术支持给我发电子邮件说,处理相机切换的内置功能正在开发中,最有可能在月底之前。 @VikR,近 2 年后有更新吗? 是的,从那时起,Agora 已经走过了漫长的道路。查看他们的文档docs.agora.io/en/Video/faq/switchdevice_web

以上是关于WebRTC 与 Agora.io:SwitchCamera?的主要内容,如果未能解决你的问题,请参考以下文章

如何启动这个 Agora WebRTC 示例 node.js 服务器?

Flutter - webRTC 视频通话信号不起作用

使用 Agora.io 互动直播

使用 agora.io 发布流

在 Agora IO 中与参与者共享屏幕共享控件

尝试将 Agora IO 与 Unity WebGL 集成。构建演示场景时出错