web-dev-qa-db-ja.com

ブラウザ/プラットフォームが「getDisplayMedia」による画面キャプチャをサポートしているかどうかを確認します

navigator.mediaDevices.getDisplayMedia()を使用して、画面またはウィンドウへのメディアストリームをリクエストできます。ただし、これにより、使用するキャプチャの種類を決定するようにすぐにユーザーに求められます。ブラウザ/プラットフォームがスクリーンキャプチャをサポートしているかどうかを確認する必要があります。

もちろん、_'getDisplayMedia' in navigator.mediaDevices_を確認することは可能ですが、これはAPIがブラウザーでサポートされているかどうかを示すだけです。特に、FFとChromeでは、APIが定義されており、getDisplayMedia()を呼び出すことができますが、常に即座にNotAllowedErrorエラー(これは予想される: caniuseによると 、モバイルブラウザはまだgetDisplayMediaをサポートしていません。)

次に、navigator.mediaDevices.getSupportedConstraints()を確認してみました。ただし、モバイルFFはデスクトップFFとまったく同じオブジェクトを返します。特に、navigator.mediaDevices.getSupportedConstraints().mediaSourceはどちらの場合もtrueです。最後に、navigator.mediaDevices.enumerateDevices()から返されたデータも役に立ちません。どうしても解釈できないデバイスとグループIDしか取得しません(そうですか?).

getDisplayMediaによる画面キャプチャが事前にサポートされているかどうかを事前に検出できますか?

このQ&A はかなり似ているようですが、getUserMediaについてであり、かなり古いものです)

8

残念ながら、これらのブラウザでgetDisplayMediaが機能するかどうかを機能検出する直接的な方法はありません。

今日できることは ブラウザのUA文字列をスニフする であり、サポートが不足しているモバイルではないことを検出します。¹

getDisplayMediaの方がよいかどうかを確認するために、質問に基づいて 仕様の問題 を提出しましたundefinedサポートされていない場合。


1. caniuse クレームOperaモバイルはサポートしていますが、私が test it をすると、そうではありません。

6
jib