我有一个简单的问题。是否有可能实现适用于大多数设备和浏览器的屏幕共享?
我在网上看了一下,找到了一些chrome的插件,但是我想在不安装任何插件的情况下进行屏幕共享,或者在chrome上设置一些实验性标志。
最好的解决方案是当我可以从导航器获取流时,就像我的相机捕捉一样。
从相机获取视频的代码
this.navig.getUserMedia = ( this.navig.getUserMedia || this.navig.webkitGetUserMedia || this.navig.mozGetUserMedia || this.navig.msGetUserMedia );
this.navig.getUserMedia({video: true, audio: true}, (stream) => {
this.videoElement.nativeElement.src = window.URL.createObjectURL(stream);
this.videoElement.nativeElement.play();
}, (error) => console.warn('video error' + error))
所以我希望在捕获屏幕的情况下拥有流对象。这可能吗?
我在互联网上发现了这个,但这给我带来了一些错误......
navigator.mediaDevices.getDisplayMedia({ video: true })
.then(stream => {
// we have a stream, attach it to a feedback video element
videoElement.srcObject = stream;
}, error => {
console.log("Unable to acquire screen capture", error);
});
答案 0 :(得分:1)
在这个阶段,只有firefox会让你在没有额外安全插件或服务的情况下使用屏幕共享。
答案 1 :(得分:1)
2019更新:是的,有可能。 使用getDisplayMedia
在Chrome,Firefox和Safari上运行let displayMediaOptions = {video: true, audio: false};
navigator.mediaDevices.getDisplayMedia(displayMediaOptions)
.then(function(stream){
video_el.srcObject = stream;
})
正在运行的演示,位于thescreenshare.com