在我的示例反应视频通话应用程序中关闭/停止浏览器摄像头

Posted

技术标签:

【中文标题】在我的示例反应视频通话应用程序中关闭/停止浏览器摄像头【英文标题】:Turn off/stop browser camera in my sample react video call application 【发布时间】:2020-01-10 06:28:01 【问题描述】:

我正在使用 react.js 和 kurento utils SDK 为媒体服务器开发一个视频聊天 Web 应用程序。问题是即使视频通话结束后摄像头/灯仍然亮着。摄像头仅在第一次停止,并且仅在第二次通话时出现问题。

  let stream = videoElem.srcObject;
  let tracks = stream.getTracks();

  tracks.forEach(function(track) 
    track.stop();
  );

  videoElem.srcObject = null;

我尝试了所有可能的方法来解决这个问题,上面的代码是我用来停止相机的。这是 react.js 的问题吗?

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

您能否尝试将单个视频和音频轨道作为 webrtc API 停止 例如

mediaStream.getAudioTracks()[0].stop();
mediaStream.getVideoTracks()[0].stop();

【讨论】:

我也试过了。但它只适用于第一次通话,然后即使通话结束,相机灯也会亮起。 如何重新开启?【参考方案2】:

您必须拥有多个流实例。 您可以做的是拥有一个流实例,您可以将其存储在 redux 或上下文中,并在需要时相应地调用它。

【讨论】:

以上是关于在我的示例反应视频通话应用程序中关闭/停止浏览器摄像头的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中关闭系统键盘

在我的应用中关闭推送通知

如何在本机反应中关闭模态

在 WebRTC 库中关闭视图控制器时出现 EXC_BAD_ACCESS 错误时崩溃

应用程序在模拟器中运行,但在我的 iPhone 中关闭

在我的函数 ngDoCheck() Angular 中关闭 matDialog 时出现问题