Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web/API/MediaDevices/enumerateDevices を更新 #24061

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 15 additions & 12 deletions files/ja/web/api/mediadevices/enumeratedevices/index.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
---
title: "MediaDevices: enumerateDevices() メソッド"
short-title: enumerateDevices()
slug: Web/API/MediaDevices/enumerateDevices
l10n:
sourceCommit: eab4066e72d5478de920e4020e5db71214dcffa6
sourceCommit: b2875dbaa70efb5850084b9802803b439db325f5
---

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

{{domxref("MediaDevices")}} の **`enumerateDevices()`** メソッドは、マイクやカメラ、ヘッドセットなど、利用可能なメディア入出力機器の一覧を要求します
**`enumerateDevices()`** は {{domxref("MediaDevices")}} インターフェイスのメソッドで、マイクやカメラ、ヘッドセットなど、現在利用可能なメディア入出力機器の一覧を要求します
返されたプロミス ({{jsxref("Promise")}}) は、機器を記述した {{domxref("MediaDeviceInfo")}} の配列で解決されます。

特定の機器へのアクセスは、[権限 API](/ja/docs/Web/API/Permissions_API) によって制限されます
返される機器の一覧では、対応する権限が付与されていない機器は省略されます。[`microphone`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/microphone), [`camera`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/camera), [`speaker-selection`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection) (出力機器の場合)などです
特定の機器へのアクセスは、[権限ポリシー](/ja/docs/Web/HTTP/Headers/Permissions-Policy)によって制限されます。返される機器の一覧では、対応する権限が付与されていない機器は省略されます。[`microphone`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/microphone), [`camera`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/camera), [`speaker-selection`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection) (出力機器の場合)などです
また、[権限 API](/ja/docs/Web/API/Permissions_API) によって、特定の既定ではない機器へのアクセスも制限され、ユーザーが明示的な許可を与えていない端末はリストから省略されます

## 構文

Expand All @@ -25,12 +26,13 @@ enumerateDevices()

### 返値

{{ jsxref("Promise") }} で、プロミスが履行されると {{domxref("MediaDeviceInfo")}} オブジェクトの配列を受け取ります
{{jsxref("Promise")}} で、{{domxref("MediaDeviceInfo")}} オブジェクトの配列で履行されます
配列内の各オブジェクトは、利用可能なメディア入出力機器の 1 つを記述します。
順番は重要で、既定のキャプチャ機器が最初にリストアップされます。

権限が付与された機器種別のみが "available" となります。
また、[`speaker-selection`](/ja/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection) [権限ポリシー](/ja/docs/Web/HTTP/Permissions_Policy)を使用して、音声出力の使用をブロックしていた場合、リストには現れないことに注意してください。
既定以外の危機は、権限が付与された機器のみが "available" となります。

メディア機器が入力機器である場合、代わりに {{domxref("InputDeviceInfo")}} オブジェクトが返されます。

列挙に失敗した場合、プロミスは拒否されます。

Expand All @@ -39,16 +41,17 @@ enumerateDevices()
API へのアクセスは、以下の制約を受けます。

- このメソッドは、[安全なコンテキスト](/ja/docs/Web/Security/Secure_Contexts)で呼び出す必要があります。
- 文書は完全にアクティブで、その可視性が「可視」である必要があります。

## 例

これは `enumerateDevices()` の使用例です。[デバイス ID](/ja/docs/Web/API/MediaDeviceInfo/deviceId) の一覧と、もしあればそのラベルが出力されます。
これは `enumerateDevices()` の使用例です。[機器 ID](/ja/docs/Web/API/MediaDeviceInfo/deviceId) の一覧と、もしあればそのラベルが出力されます。

```js
if (!navigator.mediaDevices?.enumerateDevices) {
console.log("enumerateDevices() not supported.");
} else {
// List cameras and microphones.
// カメラとマイクを列挙
navigator.mediaDevices
.enumerateDevices()
.then((devices) => {
Expand Down Expand Up @@ -90,5 +93,5 @@ audioinput: Built-in Microphone id=r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=

- {{domxref("MediaDevices.getUserMedia")}}
- [WebRTC](/ja/docs/Web/API/WebRTC_API) - API の入門ページ
- [MediaStream API](/ja/docs/Web/API/Media_Capture_and_Streams_API) - メディアストリームオブジェクトの API
- [ウェブカメラでの写真撮影](/ja/docs/Web/API/Media_Capture_and_Streams_API/Taking_still_photos) は、動画ではなく写真を撮るために `getUserMedia()` を使用するチュートリアルです。
- [メディアキャプチャとストリーム API](/ja/docs/Web/API/Media_Capture_and_Streams_API) - メディアストリームオブジェクトの API
- [ウェブカムでの写真撮影](/ja/docs/Web/API/Media_Capture_and_Streams_API/Taking_still_photos) は、動画ではなく写真を撮るために `getUserMedia()` を使用するチュートリアルです。