MediaCapabilities: encodingInfo() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

encodingInfo()MediaCapabilities インターフェイスのメソッドで、確認されたメディア構成のエンコード方式の能力を履行するプロミスを返します。 これには、端末がメディアの種類とどの程度互換性があるかを記述する 3 つの論理値プロパティ、supportedsmoothpowerefficient があります。

構文

js
encodingInfo(configuration)

引数

configuration

type プロパティと、適切な型の構成を格納する video または audio プロパティを持つオブジェクトです。

type

検査対象のメディアの種類。これは 2 つの値のうちの 1 つを取ります。

record

メディアの録画構成を表します。例えば、MediaRecorderを使用します。

webrtc

電子的手段で送信されることを意味している構成を表します(例えば、RTCPeerConnectionを使用)。 メモ: Firefox ではこの型に transmission を使用しており、webrtc は動作しません。

transmission 非標準

Firefox で使用する webrtc の同義語。

video

動画メディアソースの構成オブジェクト。 これは、以下のプロパティを持ちます。

contentType

有効な動画の MIME タイプ、および(オプションで)codecs 引数の入った文字列です。

width

映像の幅です。

height

映像の高さです。

bitrate

動画ファイルの 1 秒をエンコードするために使用するビット数。

framerate

動画再生の 1 秒を構成するフレーム数。

audio

音声メディアソースの構成オブジェクト。 これは、以下のプロパティを持ちます。

contentType

有効な音声の MIME タイプ、および(オプションで)codecs 引数の入った文字列です。

channels

音声トラックが使用するチャンネル数。

bitrate

音声ファイルの 1 秒をエンコードするのに用いるビット数。

samplerate

音声ファイルの 1 秒を構成する音声サンプルの数。

返値

Promise で、以下の論理値属性を持つオブジェクトで履行されます。

supported

メディアコンテンツがすべてエンコードできる場合は true。そうでない場合は false

smooth

メディアの再生がスムーズ(高品質)に行われる場合は true、そうでない場合は false です。

powerEfficient

メディアの再生が電力効率的であれば true、そうでなければ false です。

ブラウザーは、この端末の統計情報が記録されるまで、対応しているメディア構成をsmooth および powerEfficient と報告します。 対応している音声コーデックはすべて電力効率が良いと報告されます。

例外

TypeError

encodingInfo() メソッドに渡された configuration が不正な場合に発生します。これは、以下の理由の内のいずれかに起因する可能性が考えられます。

  • 型が映像または音声ではない。
  • contentType が有効なコーデックの MIME タイプではありません。
  • メソッドに渡すメディア構成に、configuration 要素が省略されているなど、その他のエラーがある場合。

js
//Create media configuration to be tested
const mediaConfig = {
  type: "record", // or 'transmission'
  video: {
    contentType: "video/webm;codecs=vp8.0", // valid content type
    width: 1920, // width of the video
    height: 1080, // height of the video
    bitrate: 120000, // number of bits used to encode 1s of video
    framerate: 48, // number of frames making up that 1s.
  },
};

// サポートとパフォーマンスを確認する
navigator.mediaCapabilities.encodingInfo(mediaConfig).then((result) => {
  console.log(
    `この構成には対応して${result.supported ? "おり" : "おらず"}`,
  );
  console.log(`円滑で${result.smooth ? "あり" : "なく"}`);
  console.log(`電力効率に優れて${result.powerEfficient ? "います" : "いません"}`);
});

仕様書

Specification
Media Capabilities
# ref-for-dom-mediacapabilities-encodinginfo

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
encodingInfo

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

関連情報