如何停止在 chrome 中由 chrome.tabCapture API 启动的捕获媒体流

Posted

技术标签:

【中文标题】如何停止在 chrome 中由 chrome.tabCapture API 启动的捕获媒体流【英文标题】:How to stop the capturing mediastream that is started by chrome.tabCapture API in chrome 【发布时间】:2016-04-15 09:32:09 【问题描述】:

我正在开发一个 chrome 扩展程序,我使用 chrome.tabCapture API 从 chrome 浏览器的选项卡中捕获流,并使用 MediaStreamRecorder.js 记录流。我可以使用 mediaRecorder.stop() 停止流的录制,但 chrome.tabCapture API 并没有结束。它不断地发送流。我需要停止为特定选项卡运行 chrome.tabCapture API。

【问题讨论】:

【参考方案1】:

试试:

stream.getVideoTracks()[0].stop();

要提高视频质量,请指定videoConstraints

chrome.tabCapture.capture(
           videoConstraints:  mandatory:  maxWidth: 4000,
                                            maxHeight: 4000
                              , callbackFunction);

【讨论】:

感谢上面的回答,但是我们通过 chrome.tabCapture API 得到的流的分辨率很差。有什么办法可以改善吗?我也不确定是流分辨率差还是 MediaStreamRecorder 以低分辨率录制视频 @muthu 我相信这是 MediaStreamRecorder 录制视频的方式。不幸的是,由于 Chrome 在 M49 版之前不会发布完整的 MediaRecorder 功能(并非没有设置开发标志),因此 MediaStreamRecorder 只能使用 Whammy.js,它基本上从视频中获取帧,将它们放入画布中,然后从那。我认为在这个过程中损失了很多质量。如果直接看 MediaStream 的实际视频输出到一个 video 标签,默认情况下就相当不错了。

以上是关于如何停止在 chrome 中由 chrome.tabCapture API 启动的捕获媒体流的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SIGINT 上停止 node.js 检查器/Chrome 调试器?

如何使用 Chrome 浏览器在 ASP.Net 中停止将输入类型自动填充为密码

如何返回在 sklearn 中由 DecisionTreeClassifier 创建的决策树中使用的特征

如何在模型名称订单的单个字段中由用户获取购物车的所有项目

如何防止在 Kubernetes 中由 HPA 创建的特定时间段内新扩展的 Pod 缩减?

如何递归加载RestKit中由外键标识的嵌套对象?