メディア キャプチャと制約

WebRTC のメディアに関する部分では、キャプチャ可能なハードウェアにアクセスする方法を扱います。 カメラやマイクといった動画や音声、およびメディア ストリームの 説明します。また、ディスプレイ メディアについても説明します。ディスプレイ メディアは、アプリが 作成します。

メディア デバイス

ブラウザでサポートされているすべてのカメラとマイクにアクセスし、 navigator.mediaDevices オブジェクトを介して管理します。アプリケーションは 接続されているデバイスの現在のリストを取得し、多くの カメラやマイクロフォンは USB で接続します。 アプリケーションのライフサイクル中に切断されます。メディアの状態は デバイスはいつでも変更できます。そのため、アプリケーション デバイスの変更を適切に処理する必要があります。

制約

メディア デバイスにアクセスする際は、可能な限り詳細な 必要があります。デフォルトのカメラを開いて 使用できる場合、伝送されるメディア ストリームが 最適な選択肢から選ばれます

特定の制約は、MediaTrackConstraint オブジェクトで定義されます。 1 つは音声用でもう 1 つは動画用ですこのオブジェクトの属性は ConstraintLongConstraintBooleanConstraintDouble または ConstraintDOMString。これらの値は特定の値(数値、 ブール値または文字列)、範囲(LongRange または DoubleRange と 最大値など)、ideal または exact 定義を持つオブジェクトを指定できます。1 つの ブラウザはできるだけ近い値を選択しようとします。 範囲には、その範囲内の最適な値が使用されます。exact が次と一致する場合 指定した場合、その制約と完全に一致するメディア ストリームのみが 返されます。

Near

// Camera with a resolution as close to 640x480 as possible
{
    "video": {
        "width": 640,
        "height": 480
    }
}

範囲

// Camera with a resolution in the range 640x480 to 1024x768
{
    "video": {
        "width": {
            "min": 640,
            "max": 1024
        },
        "height": {
            "min": 480,
            "max": 768
        }
    }
}

完全一致

// Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}

メディア ストリームの特定のトラックの実際の設定を確認するには、 MediaStreamTrack.getSettings() を呼び出すことができます。これにより、 MediaTrackSettings が現在適用されています。

トラックの制約を、Google が作成したメディア デバイスから更新することもできます。 開かれている間は、トラックの applyConstraints() を呼び出します。これにより、 アプリがメディア デバイスを再構成する際に、メディア デバイスを ストリーミングできます

ディスプレイ メディア

画面のキャプチャと録画を実行する必要があるアプリケーション Display Media API を使用する必要があります関数 getDisplayMedia()navigator.mediaDevicesgetUserMedia() に類似しており、 ディスプレイのコンテンツ(またはディスプレイの一部、 表示されます。返される MediaStream は、 getUserMedia()

getDisplayMedia() の制約は、通常の制約に使用されるものとは異なります。 入力できます。

{
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}

上記のコード スニペットは、画面の録画に対する特別な制約を示しています。 機能します。ディスプレイを搭載した一部のブラウザでは、これらの操作に対応していない場合があります。 メディア サポート。

ストリームとトラック

MediaStream は、トラックで構成されるメディア コンテンツのストリームを表します。 (MediaStreamTrack)音声と動画。すべてのトラックは MediaStream.getTracks() を呼び出して MediaStream します。これにより、 MediaStreamTrack オブジェクト。

MediaStreamTrack

MediaStreamTrackkind プロパティが audio または video である。 表すメディアの種類を指定します。各トラックをミュートするには、 enabled プロパティ。トラックに、ブール値のプロパティ remote が それが RTCPeerConnection をソースとし、リモートピアからのものである場合。