问题 录制后如何取消getUserMedia指标


我正在使用 recorder.js 和 getUserMedia 在浏览器中做一些录音。开始录制时,用户会收到“允许此网站使用您的麦克风”提示,一旦他们点击允许,Chrome就会在标签的图标上添加一个指示符,以显示它正在录制:

记录指示器http://ubuntuone.com/1nBkbmc9vA313WeWtV03Kz

我的问题是,即使我的应用程序停止录制,指示也永远不会消失。基本上,我想撤销我自己的录制权限。这可能吗?


5304
2017-07-22 09:19


起源



答案:


当你生成一个新的 MediaStream 对象来自 getUserMedia 打电话,它包含一个 MediaStreamTrack 目的。

调用 MediaStream.getAudioTracks() 应该返回一个代表所有的快照的序列 MediaStreamTrack 流中的对象与种类 "audio"。调用时同样适用 MediaStream.getVideoTracks() 检索视频轨道对象。

根据规范,您可以通过调用撤消对应用程序的所有授予权限 MediaStreamTrack.stop() 在音轨对象上。

资源: Media Capture和Stream API规范


10
2017-07-22 09:32



太好了,谢谢!它似乎只是在呼唤 mediaStream.stop() 工作,没有得到轨道。 - nickf
哦,太棒了!很高兴知道! - mattfieldy
有趣的是,尽管这会从favicon中删除指示器,但记录实际上可以继续...... - nickf
firefox on mac和firefox on windows工作不同.. mediaStream.stop() - 适用于windows mediaStream.getAudioTracks()[0] .stop() - 适用于MacOS和ChromeOS - zeah
由于它会继续录制,当用户点击“录制”按钮时,如何再次显示指示? - jpenna


答案:


当你生成一个新的 MediaStream 对象来自 getUserMedia 打电话,它包含一个 MediaStreamTrack 目的。

调用 MediaStream.getAudioTracks() 应该返回一个代表所有的快照的序列 MediaStreamTrack 流中的对象与种类 "audio"。调用时同样适用 MediaStream.getVideoTracks() 检索视频轨道对象。

根据规范,您可以通过调用撤消对应用程序的所有授予权限 MediaStreamTrack.stop() 在音轨对象上。

资源: Media Capture和Stream API规范


10
2017-07-22 09:32



太好了,谢谢!它似乎只是在呼唤 mediaStream.stop() 工作,没有得到轨道。 - nickf
哦,太棒了!很高兴知道! - mattfieldy
有趣的是,尽管这会从favicon中删除指示器,但记录实际上可以继续...... - nickf
firefox on mac和firefox on windows工作不同.. mediaStream.stop() - 适用于windows mediaStream.getAudioTracks()[0] .stop() - 适用于MacOS和ChromeOS - zeah
由于它会继续录制,当用户点击“录制”按钮时,如何再次显示指示? - jpenna