1. 程式人生 > 其它 >利用getDisplayMedia在WebRTC上實現螢幕捕獲

利用getDisplayMedia在WebRTC上實現螢幕捕獲

技術標籤:WebRTCwebrtc

1. 用法

var promise = navigator.mediaDevices.getDisplayMedia(constraints);

2. 瀏覽器相容性

截圖2020-12-14 下午4.27.44

3. demo

<!--
    getDisplayMedia_demo
-->
<style>
    html, body {
        margin: 0!important;
        padding: 0!important;
        text-align: center;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI"
, Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1em; } video { width: 40%; border-radius
: 5px; border: 1px solid black; }
</style> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>2020-12-14 螢幕捕獲getDisplayMedia demo</title> </head> <body
>
<div id="mainDiv"> <h1><code>getDisplayMedia()</code> very simple demo</h1> <video controls autoplay playsinline muted="false" volume=0></video> <br><br> <button id="btn-test-getDisplayMedia">Test getDisplayMedia API</button> <script src="getDisplayMedia_demo.js"> </script> </div> </body>
var constraints = {video: true};
var video = document.querySelector('video');
var button = document.querySelector('#btn-test-getDisplayMedia');

button.onclick = function(){
    this.disabled = true;

    invokeGetDisplayMedia(function(screen){
        video.srcObject = screen;
    });
}

function invokeGetDisplayMedia(success){
    var constraints = {
        video : true
    };
    if(navigator.mediaDevices.getDisplayMedia) {
        navigator.mediaDevices.getDisplayMedia(constraints).then(success);
    }
    else {
        navigator.getDisplayMedia(constraints).then(success);
    }
}