WebRTC のメディアに関する部分では、キャプチャ可能なハードウェアにアクセスする方法を扱います。 カメラやマイクといった動画や音声、およびメディア ストリームの 説明します。また、ディスプレイ メディアについても説明します。ディスプレイ メディアは、アプリが 作成します。
メディア デバイス
ブラウザでサポートされているすべてのカメラとマイクにアクセスし、
navigator.mediaDevices
オブジェクトを介して管理します。アプリケーションは
接続されているデバイスの現在のリストを取得し、多くの
カメラやマイクロフォンは USB で接続します。
アプリケーションのライフサイクル中に切断されます。メディアの状態は
デバイスはいつでも変更できます。そのため、アプリケーション
デバイスの変更を適切に処理する必要があります。
制約
メディア デバイスにアクセスする際は、可能な限り詳細な 必要があります。デフォルトのカメラを開いて 使用できる場合、伝送されるメディア ストリームが 最適な選択肢から選ばれます
特定の制約は、MediaTrackConstraint
オブジェクトで定義されます。
1 つは音声用でもう 1 つは動画用ですこのオブジェクトの属性は
ConstraintLong
、ConstraintBoolean
、ConstraintDouble
または
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.mediaDevices
は getUserMedia()
に類似しており、
ディスプレイのコンテンツ(またはディスプレイの一部、
表示されます。返される MediaStream
は、
getUserMedia()
。
getDisplayMedia()
の制約は、通常の制約に使用されるものとは異なります。
入力できます。
{
video: {
cursor: 'always' | 'motion' | 'never',
displaySurface: 'application' | 'browser' | 'monitor' | 'window'
}
}
上記のコード スニペットは、画面の録画に対する特別な制約を示しています。 機能します。ディスプレイを搭載した一部のブラウザでは、これらの操作に対応していない場合があります。 メディア サポート。
ストリームとトラック
MediaStream
は、トラックで構成されるメディア コンテンツのストリームを表します。
(MediaStreamTrack
)音声と動画。すべてのトラックは
MediaStream.getTracks()
を呼び出して MediaStream
します。これにより、
MediaStreamTrack
オブジェクト。
MediaStreamTrack
MediaStreamTrack
の kind
プロパティが audio
または video
である。
表すメディアの種類を指定します。各トラックをミュートするには、
enabled
プロパティ。トラックに、ブール値のプロパティ remote
が
それが RTCPeerConnection
をソースとし、リモートピアからのものである場合。