77 */
88'use strict' ;
99
10- // Polyfill in Firefox.
11- // See https://blog.mozilla.org/webrtc/getdisplaymedia-now-available-in-adapter-js/
12- if ( adapter . browserDetails . browser == 'firefox' ) {
10+ const preferredDisplaySurface = document . getElementById ( 'displaySurface' ) ;
11+ const startButton = document . getElementById ( 'startButton' ) ;
12+
13+ if ( adapter . browserDetails . browser === 'chrome' &&
14+ adapter . browserDetails . version >= 107 ) {
15+ // See https://developer.chrome.com/docs/web-platform/screen-sharing-controls/
16+ document . getElementById ( 'options' ) . style . display = 'block' ;
17+ } else if ( adapter . browserDetails . browser === 'firefox' ) {
18+ // Polyfill in Firefox.
19+ // See https://blog.mozilla.org/webrtc/getdisplaymedia-now-available-in-adapter-js/
1320 adapter . browserShim . shimGetDisplayMedia ( window , 'screen' ) ;
1421}
1522
1623function handleSuccess ( stream ) {
1724 startButton . disabled = true ;
25+ preferredDisplaySurface . disabled = true ;
1826 const video = document . querySelector ( 'video' ) ;
1927 video . srcObject = stream ;
2028
@@ -23,6 +31,7 @@ function handleSuccess(stream) {
2331 stream . getVideoTracks ( ) [ 0 ] . addEventListener ( 'ended' , ( ) => {
2432 errorMsg ( 'The user has ended sharing the screen' ) ;
2533 startButton . disabled = false ;
34+ preferredDisplaySurface . disabled = false ;
2635 } ) ;
2736}
2837
@@ -38,9 +47,14 @@ function errorMsg(msg, error) {
3847 }
3948}
4049
41- const startButton = document . getElementById ( 'startButton' ) ;
50+
4251startButton . addEventListener ( 'click' , ( ) => {
43- navigator . mediaDevices . getDisplayMedia ( { video : true } )
52+ const options = { audio : true , video : true } ;
53+ const displaySurface = preferredDisplaySurface . options [ preferredDisplaySurface . selectedIndex ] . value ;
54+ if ( displaySurface !== 'default' ) {
55+ options . video = { displaySurface} ;
56+ }
57+ navigator . mediaDevices . getDisplayMedia ( options )
4458 . then ( handleSuccess , handleError ) ;
4559} ) ;
4660
0 commit comments