--- title: MediaSource.duration slug: Web/API/MediaSource/duration tags: - API - Audio - Experimental - MSE - Media Source Extensions - MediaSource - Property - Reference - Video - duration translation_of: Web/API/MediaSource/duration ---
{{domxref("MediaSource")}} インターフェイスの duration
プロパティは、現在表示されているメディアの期間(長さ)を取得および設定します。
mediaSource.duration = 5.5; // 5.5 seconds var myDuration = mediaSource.duration;
double 型。 秒単位の値が必要です。
このプロパティに新しい値を設定すると、次の例外がスローされる場合があります。
例外 | 説明 |
---|---|
InvalidAccessError |
負、または NaN の期間値を設定しようとした。 |
InvalidStateError |
{{domxref("MediaSource.readyState")}} が open と等しくないか、{{domxref("MediaSource.sourceBuffers")}} の {{domxref("SourceBuffer")}} オブジェクトの1つ以上が更新されています(つまり、{{domxref("SourceBuffer.updating")}} プロパティが true です)。 |
次のスニペットは、Nick Desaulniers によって書かれた簡単な例に基づいています(ライブで完全なデモを見るか、ソースをダウンロードしてさらに調査してください)。
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();
mediaSource.duration = 120;
video.play();
//console.log(mediaSource.readyState); // ended
});
sourceBuffer.appendBuffer(buf);
});
};
...
仕様 | 状態 | コメント |
---|---|---|
{{SpecName('Media Source Extensions', '#idl-def-mediasource-duration', 'duration')}} | {{Spec2('Media Source Extensions')}} | 初期定義 |
{{Compat("api.MediaSource.duration")}}