2017-09-07 210 views
3

火狐Firefox的支持,因爲版本52,將通過支持屏幕共享:檢測屏幕共享

navigator.mediaDevices.getUserMedia({ video: { mediaSource: 'screen' }}) 
    .then(stream => { ... }); 

退房this test page to see it in action

我想知道是否有辦法檢測瀏覽器是否支持{ mediaSource: 'screen' }

我想只給出與有共享能力的用戶共享屏幕的選項。所以我希望能夠檢測到這一點。

+0

屏幕分享已經實施了很長時間。 FF52只是刪除了需要白名單條目或修改白名單的擴展名。 –

+0

是的,好點。你是說52之前的Firefox確實宣稱支持'mediaSource'並且使用Jib檢查沒用嗎? (除非你在舊的白名單上...) – philnash

+0

是的。只需檢查Firefox版本> = 52(或依賴擴展名)。幸運的是,最後的ESR是52,即使有人仍在使用FF45 ... –

回答

3

一種檢測瀏覽器是否支持{mediaSource:'screen'}的方法?

迂腐的答案是下面將告訴你是否支持mediaSource約束:

console.log(!!navigator.mediaDevices.getSupportedConstraints().mediaSource);

不幸的是,mediaSource是非標準的,只有在Firefox中實現。 Firefox是編寫唯一的瀏覽器,無需插件即可實現屏幕共享。

Chrome有一個不同的非標準API,使用chromeMediaSource作爲插件,使用較舊的約束語法,但它(正確)不會出現在新的getSupportedConstraints中。

這還是有點混亂。長期瀏覽器最終可能會實施getDisplayMedia

+1

啊,當然。我正在瀏覽'getSupportedConstraints',出於某種原因掛在'browserWindow'上,完全錯過了'mediaSource'。我意識到這是所有非標準的,並希望將來有一個體面的標準('getDisplayMedia'似乎是一個好主意)。謝謝! – philnash