Skip to content

Commit

Permalink
2024/05/05 時点の英語版に基づき新規翻訳
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Aug 22, 2024
1 parent 15858c1 commit 0d38b7d
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 0 deletions.
73 changes: 73 additions & 0 deletions files/ja/web/api/mediastreamtrack/applyconstraints/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "MediaStreamTrack: applyConstraints() メソッド"
short-title: applyConstraints()
slug: Web/API/MediaStreamTrack/applyConstraints
l10n:
sourceCommit: 1fc327ab47c4fc89eff6e1d05780babd720e4b13
---

{{APIRef("Media Capture and Streams")}}

**`applyConstraints()`** は {{domxref("MediaStreamTrack")}} インターフェイスのメソッドで、トラックに一連の制約を適用します。これらの制約により、ウェブサイトやアプリは、フレームレート、サイズ、エコーキャンセルなど、トラックの制約可能なプロパティに対して、理想的な値や受け入れられる範囲を設定することができます。

制約を使用することで、メディアが特定のガイドラインを満たすように保証することができます。
例えば、高密度の動画を推奨しますが、ネットワークに負担をかけないようにデータレートを低く保つためにフレームレートを少し低くする必要があるかもしれません。
また、理想的なサイズや受け入れられるサイズ、またはその範囲を指定することもできます。
推奨する制約を適用する方法の詳細については、[能力と制約と設定](/ja/docs/Web/API/Media_Capture_and_Streams_API/Constraints)[制約の適用](/ja/docs/Web/API/Media_Capture_and_Streams_API/Constraints#制約の適用)を参照してください。

## 構文

```js-nolint
applyConstraints()
applyConstraints(constraints)
```

### 引数

- `constraints` {{optional_inline}}
- : トラックの制約可能プロパティに適用する制約を列挙した {{domxref("MediaTrackConstraints")}} です。既存の制約は指定した新しい値で置き換えられ、含まれない制約可能プロパティは既定の制約に戻されます。
この引数を除外すると、現在設定されているカスタム制約はすべてクリアされます。
このオブジェクトは、プロミス ({{jsxref("Promise")}}) が解決するために適用しなければならない制約の基本設定を表します。
このオブジェクトは追加の `MediaTrackConstraints` オブジェクトの配列を含む高度なプロパティを格納することができます。

### 返値

制約が正常に適用されたときに解決するプロミス ({{jsxref("Promise")}})。制約が適用できない場合、プロミス {{domxref("OverconstrainedError")}} で拒否されます。これは、{{domxref("DOMException")}} に追加引数として `OverconstrainedError` という名前を設定したもので、制約に合うものがなかったことを示します。
これは、指定する制約が厳しすぎて、トラックを構成しようとしたときに一致するものが見つからなかった場合に発生する可能性があります。

##

次の例では、基本的な制約と高度な制約を設定する方法を示します。
これは、ページまたはウェブアプリの幅が 640 ~ 1280 の間、高さが 480 ~ 720の間である必要があることを指定します。高度なプロパティではさらに、画像サイズは 1920 x 1280 が推奨され、利用できない場合は 1.333 のアスペクト比を指定します。。なお、これらの制約は、仕様が「バックオフ戦略」と呼んでいるものも参照しています。

```js
const constraints = {
width: { min: 640, ideal: 1280 },
height: { min: 480, ideal: 720 },
advanced: [{ width: 1920, height: 1280 }, { aspectRatio: 1.333 }],
};

navigator.mediaDevices.getUserMedia({ video: true }).then((mediaStream) => {
const track = mediaStream.getVideoTracks()[0];
track
.applyConstraints(constraints)
.then(() => {
// 画像キャプチャ API を使用するなど、トラックで何かを行う
})
.catch((e) => {
// 利用できる端末では制約を満たすことができない
});
});
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [MediaStream 画像キャプチャ API](/ja/docs/Web/API/MediaStream_Image_Capture_API)
73 changes: 73 additions & 0 deletions files/ja/web/api/mediastreamtrack/getcapabilities/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "MediaStreamTrack: getCapabilities() メソッド"
short-title: getCapabilities()
slug: Web/API/MediaStreamTrack/getCapabilities
l10n:
sourceCommit: 1fc327ab47c4fc89eff6e1d05780babd720e4b13
---

{{APIRef("Media Capture and Streams")}}

**`getCapabilities()`** は {{domxref("MediaStreamTrack")}} インターフェイスのメソッドで、プラットフォームと{{Glossary("user agent", "ユーザーエージェント")}}に基づいて、各制約されるプロパティの値または値の範囲を指定する `MediaTrackCapabilities` オブジェクトを返します。

ブラウザーの能力がわかったら、スクリプトは {{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}} を使用して、理想的な設定または受け入れられる設定に一致するようにトラックの構成を要求することができます。制約可能なプロパティを作業する方法の詳細については、[能力と制約と設定](/ja/docs/Web/API/Media_Capture_and_Streams_API/Constraints)を参照してください。

## 構文

```js-nolint
getCapabilities()
```

### 引数

なし。

### 返値

`MediaTrackCapabilities` オブジェクトは、ユーザーエージェントが対応する制約可能なプロパティごとに対応する値または値の範囲を指定し、以下のメンバーを含みます。

- `deviceId`
- : [`ConstrainDOMString`](/ja/docs/Web/API/MediaTrackConstraints#constraindomstring) オブジェクトで、機器 ID が入ります。
- `groupId`
- : [`ConstrainDOMString`](/ja/docs/Web/API/MediaTrackConstraints#constraindomstring) オブジェクトで、グループ ID が入ります。
- `autoGainControl`
- : [`ConstrainBoolean`](/ja/docs/Web/API/MediaTrackConstraints#constrainboolean) オブジェクトで、ソースが自動ゲイン制御ができるかどうかを報告します。
この機能がスクリプトで制御できる場合、ソースは true と false の両方を可能な値として報告します。
- `channelCount`
- : [`ConstrainULong`](/ja/docs/Web/API/MediaTrackConstraints#constrainulong) で、チャンネル数またはチャンネル数の範囲が入ります。
- `echoCancellation`
- : [`ConstrainBoolean`](/ja/docs/Web/API/MediaTrackConstraints#constrainboolean) オブジェクトで、ソースがエコーキャンセルができるかどうかを報告します。
この機能がスクリプトで制御できる場合、ソースは true と false の両方を可能な値として報告します。
- `latency`
- : [`ConstrainDouble`](/ja/docs/Web/API/MediaTrackConstraints#constraindouble) で、レイテンシーまたはレイテンシーの範囲が入ります。
- `noiseSuppression`
- : [`ConstrainBoolean`](/ja/docs/Web/API/MediaTrackConstraints#constrainboolean) object reporting if the source can do noise suppression.
この機能がスクリプトで制御できる場合、ソースは true と false の両方を可能な値として報告します。
- `sampleRate`
- : [`ConstrainULong`](/ja/docs/Web/API/MediaTrackConstraints#constrainulong) で、サンプリングレートまたはサンプリングレートの範囲が入ります。
- `sampleSize`
- : [`ConstrainULong`](/ja/docs/Web/API/MediaTrackConstraints#constrainulong) で、サンプルサイズまたはサンプルサイズの範囲が入ります。
- `aspectRatio`
- : [`ConstrainDouble`](/ja/docs/Web/API/MediaTrackConstraints#constraindouble) で、映像の{{glossary("aspect ratio", "アスペクト比")}}(幅のピクセル数を高さのピクセル数で割ったもの)またはアスペクト比の範囲が入ります。
- `facingMode`
- : [`ConstrainDOMString`](/ja/docs/Web/API/MediaTrackConstraints#constraindomstring) オブジェクトで、カメラの向きのモードが入ります。カメラは "left" および "user" のように複数の向きを報告することがあります。
- `frameRate`
- : [`ConstrainDouble`](/ja/docs/Web/API/MediaTrackConstraints#constraindouble) で、受け入れ可能なフレームレートまたはフレームレートの範囲が入ります。
- `height`
- : [`ConstrainULong`](/ja/docs/Web/API/MediaTrackConstraints#constrainulong) で、映像のピクセル単位での高さまたは高さの範囲が入ります。
- `width`
- : [`ConstrainULong`](/ja/docs/Web/API/MediaTrackConstraints#constrainulong) で、映像のピクセル単位での幅または幅の範囲が入ります。
- `resizeMode`
- : [`ConstrainDOMString`](/ja/docs/Web/API/MediaTrackConstraints#constraindomstring) オブジェクトで、UAが映像トラックの解像度を導き出すために使用できるモード、またはモードの配列が入ります。

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- {{domxref("InputDeviceInfo.getCapabilities()")}}: `MediaTrackCapabilities` オブジェクトを返す

0 comments on commit 0d38b7d

Please sign in to comment.