Bug reporter: Alternatives to getDisplayMedia?

淺唱寂寞╮ 提交于 2019-12-11 01:44:59

问题


I am trying to implement a bug reporter on my website. My goal is that the user will be able to describe the problem audibly and record the browser tab while walking through the problem. The bug report will then just be a video file, which can be emailed to me.

It appears that the proposed navigator.mediaDevices.getDisplayMedia is exactly what I want, but it appears no browser has implemented it, nor have I found any plans for implementation on roadmaps.

Use of

var constraints = {video: {'mandatory' {'chromeMediaSource':'screen'}},
                   audio: true };
navigator.mediaDevices.getUserMedia(constraints)

did in fact work, but only after passing command line flags to Chrome on startup. I think essentially zero users will go through this hassle to do me a favor of submitting a bug report.

Are there any alternatives to achieving my goal?


回答1:


As you've noticed, Chrome and Firefox currently implement an outdated unofficial draft. The bug tracker for getDisplayMedia in Firefox is here.

If it helps, you no longer need an extension in Firefox, but you do need to use https (so you must open this page in https first):

var constraints = {video: {mediaSource: "screen", width: 320, height: 200}};

navigator.mediaDevices.getUserMedia(constraints)
  .then(stream => video.srcObject = stream)
  .catch(e => console.log(e.message));
<video id="video" height="240" width="320" autoplay></video>

However, please be aware of unique security risks of sharing your screen with a browser window on it.




回答2:


You have to develop an extension (at least on chrome) using https://developer.chrome.com/extensions/desktopCapture APIs. As this poses a security concern, its not available without an extension. There is a talk to add this in next version of webrtc spec (https://w3c.github.io/mediacapture-screen-share/). You may want to keep an eye on it and track the progress.




回答3:


There are older versions of the API currently implemented. See this module which includes example extensions for Chrome and Firefox (note: Firefox will soon no longer require an extension for whitelisting)




回答4:


getDisplayMedia() has now been rolled out in Edge 17 and 18 and it is under a flag in Chrome 70

The code required to capture the screen is as follows:

navigator.getDisplayMedia({ video: true }).then(stream => {
    console.log("Awesome");
}, error => {
    console.log("Unable to acquire screen capture", error);
});

Chrome will ask whether you want to share your screen, an app window or a Chrome tab:



来源:https://stackoverflow.com/questions/41881434/bug-reporter-alternatives-to-getdisplaymedia

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!