Skip to content

Commit

Permalink
fix(esl-media): detect youtube provider stopped state (#2918)
Browse files Browse the repository at this point in the history
  • Loading branch information
fshovchko authored Feb 10, 2025
1 parent 344eb8c commit 85da24f
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/modules/esl-media/providers/youtube-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ export class YouTubeProvider extends BaseProvider {
protected override _el: HTMLDivElement | HTMLIFrameElement;
protected _api: YT.Player;

protected _lastPlayerState: PlayerStates = PlayerStates.UNINITIALIZED;

static override parseUrl(url: string): Partial<MediaProviderConfig> | null {
if (this.providerRegexp.test(url)) {
const [, id] = url.match(this.idRegexp) || [];
Expand Down Expand Up @@ -117,7 +119,8 @@ export class YouTubeProvider extends BaseProvider {
}

private _onStateChange(event: YT.OnStateChangeEvent): void {
switch (+event.data) {
const newState = +event.data;
switch (newState) {
case PlayerStates.PLAYING:
this.component._onPlay();
break;
Expand All @@ -131,7 +134,12 @@ export class YouTubeProvider extends BaseProvider {
this.component._onEnded();
}
break;
case PlayerStates.UNSTARTED:
if (this._lastPlayerState === PlayerStates.PLAYING || this._lastPlayerState === PlayerStates.PAUSED) this.component._onEnded();
break;
}

this._lastPlayerState = newState;
}

protected override onConfigChange(param: ProviderObservedParams, value: boolean): void {
Expand Down

0 comments on commit 85da24f

Please sign in to comment.