From 7f8b4c82678363d5ea902d6f0e6e17873d13ab06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Tyczy=C5=84ski?= Date: Thu, 3 Oct 2024 22:08:56 +0200 Subject: [PATCH] chore: Remove duplicated code in MediaSourceEngine (#7393) --- lib/media/media_source_engine.js | 49 +++++++++++++------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/lib/media/media_source_engine.js b/lib/media/media_source_engine.js index 8347dbe40e..7333952d52 100644 --- a/lib/media/media_source_engine.js +++ b/lib/media/media_source_engine.js @@ -117,7 +117,7 @@ shaka.media.MediaSourceEngine = class { /** @private {boolean} */ this.playbackHasBegun_ = false; - /** @private {(MediaSource|ManagedMediaSource)} */ + /** @private {MediaSource} */ this.mediaSource_ = this.createMediaSource(this.mediaSourceOpen_); /** @private {boolean} */ @@ -179,13 +179,16 @@ shaka.media.MediaSourceEngine = class { * Replaced by unit tests. * * @param {!shaka.util.PublicPromise} p - * @return {!(MediaSource|ManagedMediaSource)} + * @return {!MediaSource} */ createMediaSource(p) { + /** @type {!MediaSource} */ + let mediaSource; + if (window.ManagedMediaSource) { this.video_.disableRemotePlayback = true; - const mediaSource = new ManagedMediaSource(); + mediaSource = new ManagedMediaSource(); this.eventManager_.listen( mediaSource, 'startstreaming', () => { @@ -196,39 +199,25 @@ shaka.media.MediaSourceEngine = class { mediaSource, 'endstreaming', () => { this.streamingAllowed_ = false; }); - - this.eventManager_.listenOnce( - mediaSource, 'sourceopen', () => this.onSourceOpen_(p)); - - // Correctly set when playback has begun. - this.eventManager_.listenOnce(this.video_, 'playing', () => { - this.playbackHasBegun_ = true; - }); - - this.url_ = shaka.media.MediaSourceEngine.createObjectURL(mediaSource); - - this.video_.src = this.url_; - - return mediaSource; } else { - const mediaSource = new MediaSource(); + mediaSource = new MediaSource(); + } - // Set up MediaSource on the video element. - this.eventManager_.listenOnce( - mediaSource, 'sourceopen', () => this.onSourceOpen_(p)); + // Set up MediaSource on the video element. + this.eventManager_.listenOnce( + mediaSource, 'sourceopen', () => this.onSourceOpen_(p)); - // Correctly set when playback has begun. - this.eventManager_.listenOnce(this.video_, 'playing', () => { - this.playbackHasBegun_ = true; - }); + // Correctly set when playback has begun. + this.eventManager_.listenOnce(this.video_, 'playing', () => { + this.playbackHasBegun_ = true; + }); - // Store the object URL for releasing it later. - this.url_ = shaka.media.MediaSourceEngine.createObjectURL(mediaSource); + // Store the object URL for releasing it later. + this.url_ = shaka.media.MediaSourceEngine.createObjectURL(mediaSource); - this.video_.src = this.url_; + this.video_.src = this.url_; - return mediaSource; - } + return mediaSource; } /**