From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/sourcebuffer/abort/index.html | 97 +++++++++++++ .../web/api/sourcebuffer/appendbuffer/index.html | 76 ++++++++++ .../api/sourcebuffer/appendbufferasync/index.html | 87 ++++++++++++ .../web/api/sourcebuffer/appendstream/index.html | 77 ++++++++++ .../api/sourcebuffer/appendwindowend/index.html | 91 ++++++++++++ .../api/sourcebuffer/appendwindowstart/index.html | 91 ++++++++++++ .../ja/web/api/sourcebuffer/audiotracks/index.html | 61 ++++++++ files/ja/web/api/sourcebuffer/buffered/index.html | 64 +++++++++ .../ja/web/api/sourcebuffer/changetype/index.html | 83 +++++++++++ files/ja/web/api/sourcebuffer/index.html | 158 +++++++++++++++++++++ files/ja/web/api/sourcebuffer/mode/index.html | 107 ++++++++++++++ files/ja/web/api/sourcebuffer/remove/index.html | 94 ++++++++++++ .../ja/web/api/sourcebuffer/removeasync/index.html | 86 +++++++++++ .../ja/web/api/sourcebuffer/texttracks/index.html | 63 ++++++++ .../api/sourcebuffer/timestampoffset/index.html | 87 ++++++++++++ .../web/api/sourcebuffer/trackdefaults/index.html | 85 +++++++++++ files/ja/web/api/sourcebuffer/updating/index.html | 64 +++++++++ .../ja/web/api/sourcebuffer/videotracks/index.html | 63 ++++++++ 18 files changed, 1534 insertions(+) create mode 100644 files/ja/web/api/sourcebuffer/abort/index.html create mode 100644 files/ja/web/api/sourcebuffer/appendbuffer/index.html create mode 100644 files/ja/web/api/sourcebuffer/appendbufferasync/index.html create mode 100644 files/ja/web/api/sourcebuffer/appendstream/index.html create mode 100644 files/ja/web/api/sourcebuffer/appendwindowend/index.html create mode 100644 files/ja/web/api/sourcebuffer/appendwindowstart/index.html create mode 100644 files/ja/web/api/sourcebuffer/audiotracks/index.html create mode 100644 files/ja/web/api/sourcebuffer/buffered/index.html create mode 100644 files/ja/web/api/sourcebuffer/changetype/index.html create mode 100644 files/ja/web/api/sourcebuffer/index.html create mode 100644 files/ja/web/api/sourcebuffer/mode/index.html create mode 100644 files/ja/web/api/sourcebuffer/remove/index.html create mode 100644 files/ja/web/api/sourcebuffer/removeasync/index.html create mode 100644 files/ja/web/api/sourcebuffer/texttracks/index.html create mode 100644 files/ja/web/api/sourcebuffer/timestampoffset/index.html create mode 100644 files/ja/web/api/sourcebuffer/trackdefaults/index.html create mode 100644 files/ja/web/api/sourcebuffer/updating/index.html create mode 100644 files/ja/web/api/sourcebuffer/videotracks/index.html (limited to 'files/ja/web/api/sourcebuffer') diff --git a/files/ja/web/api/sourcebuffer/abort/index.html b/files/ja/web/api/sourcebuffer/abort/index.html new file mode 100644 index 0000000000..fc17a4e2a3 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/abort/index.html @@ -0,0 +1,97 @@ +--- +title: SourceBuffer.abort() +slug: Web/API/SourceBuffer/abort +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Method + - Reference + - SourceBuffer + - Video + - abort +translation_of: Web/API/SourceBuffer/abort +--- +
{{draft}}{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの abort() メソッドは、現在のセグメントを打ち切り、セグメントパーサーをリセットします。

+ +

構文

+ +
sourceBuffer.abort();
+
+ +

パラメーター

+ +

なし。

+ +

戻り値

+ +

{{jsxref('undefined')}}。

+ +

例外

+ + + + + + + + + + + + + + +
例外説明
InvalidStateError親メディアソースの {{domxref("MediaSource.readyState")}} プロパティが open と等しくないか、この SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

abort() の仕様の説明はやや混乱します。 例えば、パーサーの状態のリセット(reset parser state)のステップ1を検討してください。 MSE API は完全に非同期ですが、この手順は同期(ブロッキング)操作を示唆しているように見えますが、これは意味がありません。

+ +

つまり、現在の実装は、ソースバッファで発生している現在の追加(またはその他)操作を停止し、すぐに操作を再開したい特定の状況で役立ちます。 例えば、次のコードを検討してください。

+ +
sourceBuffer.addEventListener('updateend', function (_) {
+  ...
+});
+
+sourceBuffer.appendBuffer(buf);
+ +

appendBuffer の呼び出し後、updateend イベントが発生する前(つまり、バッファは追加されているが、操作はまだ完了していない)に、ユーザーが新しいポイントを探して動画を「スクラブ」するとします。 この場合、ソースバッファで abort() を手動で呼び出して現在のバッファのデコードを停止し、動画の現在の新しい位置に関連する新しく要求されたセグメントを取得して追加します。

+ +

Nick Desaulnier の bufferWhenNeeded デモで同様の動作を確認できます。 48行目では、イベントリスナーが再生中の動画に追加されseek() という関数が seeking イベントが発生したときに実行されます。 行92〜101では、seek() 関数が定義されています。 ここで、{{domxref("MediaSource.readyState")}} が open に設定されている場合、abort() が呼び出されることに注意してください。 つまり、新しいソースバッファを受信する準備ができていることを意味します。 この時点で、現在のセグメントを打ち切り、新しいシーク位置のセグメントを取得するだけの価値があります(checkBuffer() および getCurrentSegment() を参照)。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-abort()', 'abort()')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.abort")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/appendbuffer/index.html b/files/ja/web/api/sourcebuffer/appendbuffer/index.html new file mode 100644 index 0000000000..f2dc9591a8 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/appendbuffer/index.html @@ -0,0 +1,76 @@ +--- +title: SourceBuffer.appendBuffer() +slug: Web/API/SourceBuffer/appendBuffer +tags: + - API + - Audio + - Experimental + - MSE + - Media + - Media Source Extensions + - Method + - Reference + - SourceBuffer + - Video + - appendBuffer +translation_of: Web/API/SourceBuffer/appendBuffer +--- +
{{draft}}{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの appendBuffer() メソッドは、{{jsxref("ArrayBuffer")}} オブジェクトまたは ArrayBufferView オブジェクトからのメディアセグメントデータを SourceBuffer に追加します。

+ +

構文

+ +
sourceBuffer.appendBuffer(source);
+
+ +

パラメーター

+ +
+
source
+
SourceBuffer に追加するメディアセグメントデータを含む {{domxref("BufferSource")}}(つまり、{{domxref("ArrayBufferView")}} または {{jsxref("ArrayBuffer")}})。
+
+ +

戻り値

+ +

{{jsxref('undefined')}}。

+ +

例外

+ +

なし。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-appendbuffer(buffersource)', 'appendBuffer()')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.appendBuffer")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/appendbufferasync/index.html b/files/ja/web/api/sourcebuffer/appendbufferasync/index.html new file mode 100644 index 0000000000..a1032f53b0 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/appendbufferasync/index.html @@ -0,0 +1,87 @@ +--- +title: SourceBuffer.appendBufferAsync() +slug: Web/API/SourceBuffer/appendBufferAsync +tags: + - API + - Audio + - Experimental + - MSE + - Media + - Media Source Extensions + - Method + - Non-standard + - Reference + - SourceBuffer + - Video + - appendBufferAsync +translation_of: Web/API/SourceBuffer/appendBufferAsync +--- +
{{APIRef("Media Source Extensions")}}{{non-standard_header}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの appendBufferAsync() メソッドは、{{jsxref("ArrayBuffer")}} または {{domxref("ArrayBufferView")}} オブジェクトから SourceBuffer にメディアセグメントデータを非同期的に追加するプロセスを開始します。 バッファが追加されると満たされる {{jsxref("Promise")}} を返します。

+ +

構文

+ +
appendPromise = sourceBuffer.appendBufferAsync(source);
+ +

パラメーター

+ +
+
source
+
SourceBuffer に追加するメディアセグメントデータを含む {{domxref("BufferSource")}}(つまり、{{domxref("ArrayBufferView")}} または {{jsxref("ArrayBuffer")}})。
+
+ +

戻り値

+ +

バッファが SourceBuffer に正常に追加されたときに満たされる {{jsxref("Promise")}}、または要求を開始できなかった場合は null

+ +

+ +

この単純化された非同期関数の例 fillSourceBuffer() は、入力パラメーターとして {{domxref("BufferSource")}} の buffer、およびバッファからソースメディアを追加する SourceBuffer を受け取ります。

+ +
async function fillSourceBuffer(buffer, msBuffer) {
+  try {
+    while(true) {
+      await msBuffer.appendBufferAsync(buffer);
+    }
+  } catch(e) {
+    handleException(e);
+  }
+}
+
+ +

仕様

+ +

現在、仕様の一部ではありません。 これは、Web Platform Incubator Community Group(WICG)の後援の下で実験されています。

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions')}}{{Spec2('Media Source Extensions')}}初期定義、このメソッドは含まれません。
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.appendBufferAsync")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/appendstream/index.html b/files/ja/web/api/sourcebuffer/appendstream/index.html new file mode 100644 index 0000000000..33b4d270fd --- /dev/null +++ b/files/ja/web/api/sourcebuffer/appendstream/index.html @@ -0,0 +1,77 @@ +--- +title: SourceBuffer.appendStream() +slug: Web/API/SourceBuffer/appendStream +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Method + - Reference + - SourceBuffer + - Video + - appendstream +translation_of: Web/API/SourceBuffer/appendStream +--- +
{{draft}}{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの appendStream() メソッドは、ReadableStream オブジェクトから SourceBuffer にメディアセグメントデータを追加します。

+ +

構文

+ +
sourceBuffer.appendStream(stream, maxSize);
+
+ +

パラメーター

+ +
+
stream
+
SourceBuffer に追加するメディアセグメントデータのソースである {{domxref("ReadableStream")}}。
+
maxSize
+
この操作で追加できる最大バイト数を示す unsigned long 値。
+
+ +

戻り値

+ +

{{jsxref('undefined')}}。

+ +

例外

+ +

なし。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#widl-SourceBuffer-appendStream-void-ReadableStream-stream-unsigned-long-long-maxSize', 'appendStream()')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.appendStream")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/appendwindowend/index.html b/files/ja/web/api/sourcebuffer/appendwindowend/index.html new file mode 100644 index 0000000000..9e9beb07de --- /dev/null +++ b/files/ja/web/api/sourcebuffer/appendwindowend/index.html @@ -0,0 +1,91 @@ +--- +title: SourceBuffer.appendWindowEnd +slug: Web/API/SourceBuffer/appendWindowEnd +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - appendWindowEnd +translation_of: Web/API/SourceBuffer/appendWindowEnd +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの appendWindowEnd プロパティは、追加ウィンドウ(append window)の終わりのタイムスタンプを制御します。 タイムスタンプの範囲は、SourceBuffer に追加されるメディアデータをフィルターするために使用できます。 この範囲内のタイムスタンプを持つコード化されたメディアフレームは追加されますが、範囲外のものは除外されます。

+ +

appendWindowEnd のデフォルト値は正の無限大です。

+ +

構文

+ +
var myAppendWindowEnd = sourceBuffer.appendWindowEnd;
+
+sourceBuffer.appendWindowEnd = 120.0;
+
+ +

+ +

追加ウィンドウの終了時間を秒単位で示す double 型。

+ +

例外

+ +

このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。

+ + + + + + + + + + + + + + + + + + +
例外説明
InvalidAccessError値を {{domxref("SourceBuffer.appendWindowStart")}} 以下、または NaN に設定しようとしました。
InvalidStateErrorこの {{domxref("SourceBuffer")}} オブジェクトが更新中(つまり、その {{domxref("SourceBuffer.updating")}} プロパティが現在 true)であるか、この SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-appendwindowend', 'appendWindowEnd')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.appendWindowEnd")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/appendwindowstart/index.html b/files/ja/web/api/sourcebuffer/appendwindowstart/index.html new file mode 100644 index 0000000000..b5688f6581 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/appendwindowstart/index.html @@ -0,0 +1,91 @@ +--- +title: SourceBuffer.appendWindowStart +slug: Web/API/SourceBuffer/appendWindowStart +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - appendWindowStart +translation_of: Web/API/SourceBuffer/appendWindowStart +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの appendWindowStart プロパティは、追加ウィンドウ(append window)の始まりのタイムスタンプを制御します。 タイムスタンプの範囲は、SourceBuffer に追加されるメディアデータをフィルターするために使用できます。 この範囲内のタイムスタンプを持つコード化されたメディアフレームは追加されますが、範囲外のものは除外されます。

+ +

appendWindowStart のデフォルト値はプレゼンテーションの開始時間であり、これは再生可能なメディアの開始時間です。

+ +

構文

+ +
var myAppendWindowStart = sourceBuffer.appendWindowStart;
+
+sourceBuffer.appendWindowStart = 2.0;
+
+ +

+ +

追加ウィンドウの開始時間を秒単位で示す double 型。

+ +

例外

+ +

このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。

+ + + + + + + + + + + + + + + + + + +
例外説明
InvalidAccessError値を 0 未満、または {{domxref("SourceBuffer.appendWindowEnd")}} 以上の値に設定しようとしました。
InvalidStateErrorこの {{domxref("SourceBuffer")}} オブジェクトが更新中(つまり、その {{domxref("SourceBuffer.updating")}} プロパティが現在 true)であるか、この SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-appendwindowstart', 'appendWindowStart')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.appendWindowStart")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/audiotracks/index.html b/files/ja/web/api/sourcebuffer/audiotracks/index.html new file mode 100644 index 0000000000..62424838d5 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/audiotracks/index.html @@ -0,0 +1,61 @@ +--- +title: SourceBuffer.audioTracks +slug: Web/API/SourceBuffer/audioTracks +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - audiotracks +translation_of: Web/API/SourceBuffer/audioTracks +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの audioTracks 読み取り専用プロパティは、SourceBuffer 内に現在含まれている音声トラックのリストを返します。

+ +

構文

+ +
var myAudioTracks = sourceBuffer.audioTracks;
+
+ +

+ +

{{domxref("AudioTrackList")}} オブジェクト。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-audiotracks', 'audioTracks')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.SourceBuffer.audioTracks")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/buffered/index.html b/files/ja/web/api/sourcebuffer/buffered/index.html new file mode 100644 index 0000000000..5bf4eb007e --- /dev/null +++ b/files/ja/web/api/sourcebuffer/buffered/index.html @@ -0,0 +1,64 @@ +--- +title: SourceBuffer.buffered +slug: Web/API/SourceBuffer/buffered +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - buffered +translation_of: Web/API/SourceBuffer/buffered +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの buffered 読み取り専用プロパティは、SourceBuffer に現在バッファされている時間範囲を正規化された {{domxref("TimeRanges")}} オブジェクトとして返します。

+ +

構文

+ +
var myBufferedRange = sourceBuffer.buffered;
+
+ +

+ +

{{domxref("TimeRanges")}} オブジェクト。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-buffered', 'buffered')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.buffered")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/changetype/index.html b/files/ja/web/api/sourcebuffer/changetype/index.html new file mode 100644 index 0000000000..361cc13f53 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/changetype/index.html @@ -0,0 +1,83 @@ +--- +title: SourceBuffer.changeType() +slug: Web/API/SourceBuffer/changeType +tags: + - API + - Audio + - MSE + - Media + - Media Source + - Media Source Extensions + - Method + - SourceBuffer + - Video + - changeType +translation_of: Web/API/SourceBuffer/changeType +--- +
{{APIRef("Media Source Extensions")}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの changeType() メソッドは、今後  {{domxref("SourceBuffer.appendBuffer", "appendBuffer()")}} を呼び出すときに新しいメディアデータが準拠することを期待する MIME タイプを設定します。 これにより、コーデックまたはコンテナタイプを途中で変更できます。

+ +

これが役立つ1つのシナリオは、リソース制約の変化に応じて1つのコーデックから別のコーデックに移行することにより、帯域幅の可用性の変化にメディアソースを適応させることです。

+ +

構文

+ +
sourceBuffer.changeType(type);
+ +

パラメーター

+ +
+
type
+
将来のバッファが準拠する MIME タイプを指定する {{domxref("DOMString")}}。
+
+ +

戻り値

+ +

{{jsxref('undefined')}}。

+ +

例外

+ +
+
TypeError
+
指定された文字列は、有効な MIME タイプではなく、空です。
+
InvalidStateError
+
{{domxref("SourceBuffer")}} は、親メディアソースの {{domxref("MediaSource.sourceBuffers", "sourceBuffers")}} リストのメンバーではありません。 または、バッファの {{domxref("SourceBuffer.updating", "updating")}} プロパティは、以前にキューに入れられた {{domxref("SourceBuffer.appendBuffer", "appendBuffer()")}} または {{domxref("SourceBuffer.remove", "remove()")}} がまだ処理中であることを示しています。
+
NotSupportedError
+
指定された MIME タイプはサポートされていないか、{{domxref("MediaSource.sourceBuffers")}} リストにある {{domxref("SourceBuffer")}} オブジェクトのタイプではサポートされていません。
+
+ +

使用上の注意

+ +

親 {{domxref("MediaSource")}} が "ended" {{domxref("MediaSource.readyState", "readyState")}} にある場合に、changeType() を呼び出すと、メディアソースが "open" readyState に遷移し、親メディアソースで {{event("sourceopen")}} という名前の単純なイベントが発生します。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#dom-sourcebuffer-changetype', 'SourceBuffer.changeType')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.changeType")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/index.html b/files/ja/web/api/sourcebuffer/index.html new file mode 100644 index 0000000000..ba01b213dc --- /dev/null +++ b/files/ja/web/api/sourcebuffer/index.html @@ -0,0 +1,158 @@ +--- +title: SourceBuffer +slug: Web/API/SourceBuffer +tags: + - API + - Audio + - Experimental + - Interface + - MSE + - Media Source Extensions + - Reference + - SourceBuffer + - Video +translation_of: Web/API/SourceBuffer +--- +

{{APIRef("Media Source Extensions")}}

+ +

SourceBuffer インターフェイスは、{{domxref("MediaSource")}} オブジェクトを介して {{domxref("HTMLMediaElement")}} に渡されて再生されるメディアのチャンク(大きな塊)を表します。 これは、1つまたは複数のメディアセグメントで構成できます。

+ +

{{InheritanceDiagram}}

+ +

プロパティ

+ +
+
{{domxref("SourceBuffer.appendWindowEnd")}}
+
追加ウィンドウの終わりのタイムスタンプを制御します。
+
{{domxref("SourceBuffer.appendWindowStart")}}
+
追加ウィンドウ(append window)の始まりのタイムスタンプを制御します。 これは、SourceBuffer に追加されるメディアデータをフィルタリングするために使用できるタイムスタンプの範囲です。 この範囲内のタイムスタンプを持つコード化されたメディアフレームは追加されますが、範囲外のものは除外されます。
+
{{domxref("SourceBuffer.audioTracks")}} {{readonlyInline}}
+
SourceBuffer 内に現在含まれている音声トラックのリスト。
+
{{domxref("SourceBuffer.buffered")}} {{readonlyInline}}
+
SourceBuffer に現在バッファされている時間範囲を返します。
+
{{domxref("SourceBuffer.mode")}}
+
SourceBuffer 内のメディアセグメントの順序を、任意の順序で追加できるか、または厳密な順序で保持する必要があるかを制御します。
+
{{domxref("SourceBuffer.textTracks")}} {{readonlyInline}}
+
SourceBuffer 内に現在含まれているテキストトラックのリスト。
+
{{domxref("SourceBuffer.timestampOffset")}}
+
その後 SourceBuffer に追加されるメディアセグメント内のタイムスタンプに適用されるオフセットを制御します。
+
{{domxref("SourceBuffer.trackDefaults")}}
+
SourceBuffer に追加されるメディアの初期化セグメント(initialization segment)で、種類、ラベル、言語情報が利用できない場合に使用するデフォルト値を指定します。
+
{{domxref("SourceBuffer.updating")}} {{readonlyInline}}
+
SourceBuffer が現在更新されているかどうか、つまり {{domxref("SourceBuffer.appendBuffer()")}}、{{domxref("SourceBuffer.appendStream()")}}、または {{domxref("SourceBuffer.remove()")}} の操作が現在進行中かどうかを示すブール値。
+
{{domxref("SourceBuffer.videoTracks")}} {{readonlyInline}}
+
SourceBuffer 内に現在含まれている動画トラックのリスト。
+
+ +

イベントハンドラ

+ +
+
{{domxref("SourceBuffer.onabort")}}
+
{{domxref("SourceBuffer.appendBuffer()")}} または {{domxref("SourceBuffer.appendStream()")}} が {{domxref("SourceBuffer.abort()")}} の呼び出しによって終了するたびに発生します。 {{domxref("SourceBuffer.updating")}} は true から false に変更されます。
+
{{domxref("SourceBuffer.onerror")}}
+
{{domxref("SourceBuffer.appendBuffer()")}} 中または {{domxref("SourceBuffer.appendStream()")}} 中にエラーが発生するたびに発生します。 {{domxref("SourceBuffer.updating")}} は true から false に変更されます。
+
{{domxref("SourceBuffer.onupdate")}}
+
{{domxref("SourceBuffer.appendBuffer()")}} メソッドまたは {{domxref("SourceBuffer.remove()")}} が完了するたびに発生します。 {{domxref("SourceBuffer.updating")}} は true から false に変更されます。 このイベントは、onupdateend の前に発生します。
+
{{domxref("SourceBuffer.onupdateend")}}
+
{{domxref("SourceBuffer.appendBuffer()")}} メソッドまたは {{domxref("SourceBuffer.remove()")}} が終了するたびに発生します。 このイベントは、onupdate の後に発生します。
+
{{domxref("SourceBuffer.onupdatestart")}}
+
{{domxref("SourceBuffer.updating")}} の値が false から true に遷移するたびに発生します。
+
+ +

メソッド

+ +

親インターフェイスである {{domxref("EventTarget")}} からメソッドを継承します。

+ +
+
{{domxref("SourceBuffer.abort()")}}
+
現在のセグメントを中止し、セグメントパーサーをリセットします。
+
{{domxref("SourceBuffer.appendBuffer()")}}
+
{{domxref("ArrayBuffer")}} または {{domxref("ArrayBufferView")}} オブジェクトからのメディアセグメントデータを SourceBuffer に追加します。
+
{{domxref("SourceBuffer.appendBufferAsync()")}} {{experimental_inline}}
+
指定されたバッファを SourceBuffer に非同期的に追加するプロセスを開始します。 バッファが追加されると満たされる {{jsxref("Promise")}} を返します。
+
{{domxref("SourceBuffer.appendStream()")}}
+
ReadableStream オブジェクトからのメディアセグメントデータを SourceBuffer に追加します。
+
{{domxref("SourceBuffer.changeType()")}}
+
今後の {{domxref("SourceBuffer.appendBuffer", "appendBuffer()")}} の呼び出しで、新しいデータが準拠することを期待する {{Glossary("MIME type","MIME タイプ")}}を変更します。
+
{{domxref("SourceBuffer.remove()")}}
+
SourceBuffer から特定の時間範囲内のメディアセグメントを削除します。
+
{{domxref("SourceBuffer.removeAsync()")}} {{experimental_inline}}
+
指定された範囲のメディアセグメントを SourceBuffer から非同期的に削除するプロセスを開始します。 一致するすべてのセグメントが削除されると満たされる {{jsxref("Promise")}} を返します。
+
+ +

+ +

次の簡単な例では、動画をチャンクごとに可能な限り高速でロードし、できるだけ早く再生します。 この例は Nick Desaulniers によって作成され、ここでライブで見ることができます(さらに調査するためにソースをダウンロードすることもできます)。

+ +
var video = document.querySelector('video');
+
+var assetURL = 'frag_bunny.mp4';
+// Blink はコーデックに関して特定する必要がある
+// ./mp4info frag_bunny.mp4 | grep Codec
+var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
+
+if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
+  var mediaSource = new MediaSource();
+  //console.log(mediaSource.readyState); // closed
+  video.src = URL.createObjectURL(mediaSource);
+  mediaSource.addEventListener('sourceopen', sourceOpen);
+} else {
+  console.error('サポートされていない MIME タイプまたはコーデック: ', mimeCodec);
+}
+
+function sourceOpen (_) {
+  //console.log(this.readyState); // open
+  var mediaSource = this;
+  var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
+  fetchAB(assetURL, function (buf) {
+    sourceBuffer.addEventListener('updateend', function (_) {
+      mediaSource.endOfStream();
+      video.play();
+      //console.log(mediaSource.readyState); // ended
+    });
+    sourceBuffer.appendBuffer(buf);
+  });
+}
+
+function fetchAB (url, cb) {
+  console.log(url);
+  var xhr = new XMLHttpRequest;
+  xhr.open('get', url);
+  xhr.responseType = 'arraybuffer';
+  xhr.onload = function () {
+    cb(xhr.response);
+  };
+  xhr.send();
+}
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#sourcebuffer', 'SourceBuffer')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/mode/index.html b/files/ja/web/api/sourcebuffer/mode/index.html new file mode 100644 index 0000000000..014b55c16f --- /dev/null +++ b/files/ja/web/api/sourcebuffer/mode/index.html @@ -0,0 +1,107 @@ +--- +title: SourceBuffer.mode +slug: Web/API/SourceBuffer/mode +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - mode +translation_of: Web/API/SourceBuffer/mode +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの mode プロパティは、メディアセグメントを SourceBuffer に任意の順序で追加できるか、厳密な順序で追加できるかを制御します。

+ +

使用可能な2つの値は次のとおりです。

+ + + +

mode 値は、MediaSource.addSourceBuffer() を使用して SourceBuffer が作成されるときに最初に設定されます。 メディアセグメントにタイムスタンプが既に存在する場合、値は segments に設定されます。 そうでない場合、値は sequence に設定されます。

+ +

初期値が sequence のときに mode プロパティ値を segments に設定しようとすると、例外がスローされます。 sequence モードでは、既存のセグメントの順序を維持する必要があります。 ただし、値を segments から sequence に変更することはできます。 これは、再生順序が固定され、これを反映するために新しいタイムスタンプが生成されることを意味します。

+ +

このプロパティは、SourceBuffer が {{domxref("SourceBuffer.appendBuffer","appendBuffer()")}} または {{domxref("SourceBuffer.remove","remove()")}} の呼び出しを処理している間は変更できません。

+ +

構文

+ +
var myMode = sourceBuffer.mode;
+
+sourceBuffer.mode = 'sequence';
+
+ +

+ +

{{domxref("DOMString")}}。

+ +

例外

+ +

このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。

+ + + + + + + + + + + + + + + + + + +
例外説明
InvalidAccessError初期値が sequence の場合に、値を segments に設定しようとしました。
InvalidStateError{{domxref("SourceBuffer")}} オブジェクトが更新中(つまり、その {{domxref("SourceBuffer.updating")}} プロパティが現在 true)、この SourceBuffer に追加された最後のメディアセグメントが不完全、またはこの SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

このスニペットは、sourceBuffer のモードが、 現在 'segments' に設定されている場合、'sequence' に設定します。 したがって、再生順序は、メディアセグメントを追加した順に設定されます。

+ +
var curMode = sourceBuffer.mode;
+if (curMode == 'segments') {
+  sourceBuffer.mode = 'sequence';
+}
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-mode', 'mode')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.mode")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/remove/index.html b/files/ja/web/api/sourcebuffer/remove/index.html new file mode 100644 index 0000000000..e6adf8bd46 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/remove/index.html @@ -0,0 +1,94 @@ +--- +title: SourceBuffer.remove() +slug: Web/API/SourceBuffer/remove +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Method + - Reference + - SourceBuffer + - Video + - remove +translation_of: Web/API/SourceBuffer/remove +--- +
{{draft}}{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの remove() メソッドは、特定の時間範囲内のメディアセグメントを SourceBuffer から削除します。 このメソッドは、{{domxref("SourceBuffer.updating")}} が false の場合にのみ呼び出すことができます。 SourceBuffer.updatingfalse に等しくない場合、{{domxref("SourceBuffer.abort()")}} を呼び出します。

+ +

構文

+ +
sourceBuffer.remove(start, end);
+
+ +

パラメーター

+ +
+
start
+
時間範囲の始まりを秒単位で表す double 型。
+
end
+
時間範囲の終わりを秒単位で表す double 型。
+
+ +

戻り値

+ +

{{jsxref('undefined')}}。

+ +

例外

+ + + + + + + + + + + + + + + + + + +
例外説明
InvalidAccessError{{domxref("MediaSource.duration")}} プロパティが NaN に等しいか、start パラメーターが負であるか {{domxref("MediaSource.duration")}} より大きいか、end パラメーターが start 以下または NaN に等しい。
InvalidStateError{{domxref("SourceBuffer.updating")}} プロパティが true に等しいか、この SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-remove(double,unrestricted_double)', 'remove()')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.remove")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/removeasync/index.html b/files/ja/web/api/sourcebuffer/removeasync/index.html new file mode 100644 index 0000000000..01fe9a4d40 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/removeasync/index.html @@ -0,0 +1,86 @@ +--- +title: SourceBuffer.removeAsync() +slug: Web/API/SourceBuffer/removeAsync +tags: + - API + - Audio + - MSE + - Media + - Media Source Extensions + - Method + - Non-standard + - Reference + - SourceBuffer + - Video + - removeAsync +translation_of: Web/API/SourceBuffer/removeAsync +--- +
{{APIRef("Media Source Extensions")}}{{non-standard_header}}{{SeeCompatTable}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの removeAsync() メソッドは、特定の時間範囲内で見つかった SourceBuffer のメディアセグメントから非同期的に削除するプロセスを開始します。 指定された時間範囲のバッファが削除されたときに満たされる {{jsxref("Promise")}} が返されます。

+ +

このメソッドは、{{domxref("SourceBuffer.updating", "updating")}} が false の場合にのみ呼び出すことができます。 そうでない場合は、代わりに {{domxref("SourceBuffer.abort", "abort()")}} を呼び出します。

+ +

構文

+ +
removePromise = sourceBuffer.removeAsync(start, end);
+ +

パラメーター

+ +
+
start
+
時間範囲の始まりを秒単位で表す double 型。
+
end
+
時間範囲の終わりを秒単位で表す double 型。
+
+ +

戻り値

+ +

指定された時間範囲のバッファが SourceBuffer から削除されると、完了ハンドラが実行される {{jsxref("Promise")}}。

+ +

+ +

この例では、指定された SourceBuffer の内容を単純にクリアする非同期関数 emptySourceBuffer() を定義します。

+ +
async function emptySourceBuffer(msBuffer) {
+  await msBuffer.removeAsync(0, Infinity).catch(function(e) {
+    handleException(e);
+  }
+}
+
+ +

仕様

+ +

現在、MSE 仕様の一部ではありません。

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.removeAsync")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/texttracks/index.html b/files/ja/web/api/sourcebuffer/texttracks/index.html new file mode 100644 index 0000000000..c8c141d10c --- /dev/null +++ b/files/ja/web/api/sourcebuffer/texttracks/index.html @@ -0,0 +1,63 @@ +--- +title: SourceBuffer.textTracks +slug: Web/API/SourceBuffer/textTracks +tags: + - API + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - textTracks +translation_of: Web/API/SourceBuffer/textTracks +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの textTracks 読み取り専用プロパティは、SourceBuffer 内に現在含まれているテキストトラックのリストを返します。

+ +

構文

+ +
var myTextTracks = sourceBuffer.textTracks;
+
+ +

+ +

{{domxref("TextTrackList")}} オブジェクト。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-texttracks', 'textTracks')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.textTracks")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/timestampoffset/index.html b/files/ja/web/api/sourcebuffer/timestampoffset/index.html new file mode 100644 index 0000000000..545bda0efb --- /dev/null +++ b/files/ja/web/api/sourcebuffer/timestampoffset/index.html @@ -0,0 +1,87 @@ +--- +title: SourceBuffer.timestampOffset +slug: Web/API/SourceBuffer/timestampOffset +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - timestampOffset +translation_of: Web/API/SourceBuffer/timestampOffset +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの timestampOffset プロパティは、SourceBuffer に追加されるメディアセグメント内のタイムスタンプに適用されるオフセットを制御します。

+ +

timestampOffset の初期値は 0 です。

+ +

構文

+ +
var myOffset = sourceBuffer.timestampOffset;
+
+sourceBuffer.timestampOffset = 2.5;
+
+ +

+ +

オフセット量が秒単位で表される double 型。

+ +

例外

+ +

このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。

+ + + + + + + + + + + + + + +
例外説明
InvalidStateError{{domxref("MediaSource.sourceBuffers")}} の {{domxref("SourceBuffer")}} オブジェクトの1つ以上が更新中(つまり、{{domxref("SourceBuffer.updating")}} プロパティが現在 true)、SourceBuffer 内のメディアセグメントが現在解析中、またはこの SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-timestampoffset', 'timestampOffset')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.timestampOffset")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/trackdefaults/index.html b/files/ja/web/api/sourcebuffer/trackdefaults/index.html new file mode 100644 index 0000000000..120d361152 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/trackdefaults/index.html @@ -0,0 +1,85 @@ +--- +title: SourceBuffer.trackDefaults +slug: Web/API/SourceBuffer/trackDefaults +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - trackDefaults +translation_of: Web/API/SourceBuffer/trackDefaults +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの trackDefaults プロパティは、SourceBuffer に追加されるメディアの初期化セグメント(initialization segment)で、種類、ラベル、言語情報が利用できない場合に使用するデフォルト値を指定します。

+ +

構文

+ +
var myTrackDefaults = sourceBuffer.trackDefaults;
+
+sourceBuffer.trackDefaults = myTrackDefaultList;
+
+ +

+ +

{{domxref("TrackDefaultList")}} オブジェクト。

+ +

例外

+ +

このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。

+ + + + + + + + + + + + + + +
例外説明
InvalidStateError{{domxref("MediaSource.sourceBuffers")}} の {{domxref("SourceBuffer")}} オブジェクトの1つ以上が更新中(つまり、{{domxref("SourceBuffer.updating")}} プロパティが現在 true)、またはこの SourceBuffer が {{domxref("MediaSource")}} から取り除かれています。
+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-trackdefaults', 'trackDefaults')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.trackDefaults")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/updating/index.html b/files/ja/web/api/sourcebuffer/updating/index.html new file mode 100644 index 0000000000..cb9c308786 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/updating/index.html @@ -0,0 +1,64 @@ +--- +title: SourceBuffer.updating +slug: Web/API/SourceBuffer/updating +tags: + - API + - Audio + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Updating + - Video +translation_of: Web/API/SourceBuffer/updating +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの updating 読み取り専用プロパティは、SourceBuffer が現在更新されているかどうか、つまり {{domxref("SourceBuffer.appendBuffer()")}}、{{domxref("SourceBuffer.appendStream()")}}、または {{domxref("SourceBuffer.remove()")}} の操作が現在進行中かどうかを示します。

+ +

構文

+ +
var isUpdating = sourceBuffer.updating;
+
+ +

+ +

{{jsxref("Boolean")}}。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-updating', 'updating')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.updating")}}

+
+ +

関連情報

+ + diff --git a/files/ja/web/api/sourcebuffer/videotracks/index.html b/files/ja/web/api/sourcebuffer/videotracks/index.html new file mode 100644 index 0000000000..8ca9205c99 --- /dev/null +++ b/files/ja/web/api/sourcebuffer/videotracks/index.html @@ -0,0 +1,63 @@ +--- +title: SourceBuffer.videoTracks +slug: Web/API/SourceBuffer/videoTracks +tags: + - API + - Experimental + - MSE + - Media Source Extensions + - Property + - Reference + - SourceBuffer + - Video + - videoTracks +translation_of: Web/API/SourceBuffer/videoTracks +--- +
{{APIRef("Media Source Extensions")}}{{SeeCompatTable}}{{draft}}
+ +

{{domxref("SourceBuffer")}} インターフェイスの videoTracks 読み取り専用プロパティは、現在 SourceBuffer 内に含まれている動画トラックのリストを返します。

+ +

構文

+ +
var myVideoTracks = sourceBuffer.videoTracks;
+
+ +

+ +

{{domxref("VideoTrackList")}} オブジェクト。

+ +

+ +

未定

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Media Source Extensions', '#idl-def-sourcebuffer-videotracks', 'videoTracks')}}{{Spec2('Media Source Extensions')}}初期定義
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("api.SourceBuffer.videoTracks")}}

+
+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf