diff --git a/libs/ui/components/src/lib/art-player/art-player.component.ts b/libs/ui/components/src/lib/art-player/art-player.component.ts index df0d05def..4e28a83a0 100644 --- a/libs/ui/components/src/lib/art-player/art-player.component.ts +++ b/libs/ui/components/src/lib/art-player/art-player.component.ts @@ -12,6 +12,7 @@ import { } from '@angular/core'; import Artplayer from 'artplayer'; import Hls from 'hls.js'; +import { getExtensionFromUrl } from 'm3u-utils'; import mpegts from 'mpegts.js'; import { Channel } from 'shared-interfaces'; @@ -87,8 +88,8 @@ export class ArtPlayerComponent implements OnInit, OnDestroy, OnChanges { const el = this.elementRef.nativeElement.querySelector( '.artplayer-container' ); - const url = this.channel?.url?.toLowerCase() ?? ''; - const isLive = url.includes('m3u8') || url.endsWith('.ts'); + const extension = getExtensionFromUrl(this.channel?.url ?? ''); + const isLive = extension === 'm3u8' || extension === 'ts'; this.player = new Artplayer({ container: el, @@ -206,7 +207,7 @@ export class ArtPlayerComponent implements OnInit, OnDestroy, OnChanges { } private getVideoType(url: string): string { - const extension = url.split('.').pop()?.toLowerCase(); + const extension = getExtensionFromUrl(url); switch (extension) { case 'mkv': return 'video/matroska'; diff --git a/libs/ui/components/src/lib/vjs-player/vjs-player.component.ts b/libs/ui/components/src/lib/vjs-player/vjs-player.component.ts index acca04af5..c2716d5c6 100644 --- a/libs/ui/components/src/lib/vjs-player/vjs-player.component.ts +++ b/libs/ui/components/src/lib/vjs-player/vjs-player.component.ts @@ -143,6 +143,7 @@ export class VjsPlayerComponent implements OnInit, OnChanges, OnDestroy { const newSource = changes['options'].currentValue.sources[0]; if (this.isMpegTsSource(newSource?.src)) { this.destroyMpegTs(); + this.player.reset(); this.initMpegTs(newSource.src); } else { this.destroyMpegTs();