From 19592518cffc7146b207628853fc6fb319219508 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Fri, 16 Jan 2026 13:17:30 +0100 Subject: [PATCH 1/3] fix: update Shaka Player initialization to attach video element after creation Silence a warning for future deprecation of the contructor in shaka player 5.0+ --- packages/player/src/components/VideoPlayer.tsx | 3 ++- packages/player/src/types/shaka.d.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/player/src/components/VideoPlayer.tsx b/packages/player/src/components/VideoPlayer.tsx index a741e84..7190c40 100644 --- a/packages/player/src/components/VideoPlayer.tsx +++ b/packages/player/src/components/VideoPlayer.tsx @@ -307,7 +307,8 @@ export const VideoPlayer = forwardRef( if (!videoRef.current) return; const video = videoRef.current; - const player = new shaka.Player(video); + const player = new shaka.Player(); + player.attach(video); playerRef.current = player; // Set up error handling diff --git a/packages/player/src/types/shaka.d.ts b/packages/player/src/types/shaka.d.ts index 52e6c20..18da3e2 100644 --- a/packages/player/src/types/shaka.d.ts +++ b/packages/player/src/types/shaka.d.ts @@ -5,6 +5,8 @@ declare module "shaka-player" { namespace shaka { export class Player { constructor(video: HTMLVideoElement); + constructor(); + attach(video: HTMLVideoElement); load(uri: string): Promise; destroy(): Promise; configure(config: any): void; From b53d9516286e5e9ca7aedbc7dbea1d8cd5e41bd8 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Fri, 16 Jan 2026 13:42:58 +0100 Subject: [PATCH 2/3] fix: improve error handling for source loading in VideoPlayer component If shaka player load fails the returned type is not Error check for any object with message so potential error messages don't result in the generic failed to load source --- packages/player/src/components/VideoPlayer.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/player/src/components/VideoPlayer.tsx b/packages/player/src/components/VideoPlayer.tsx index 7190c40..4658538 100644 --- a/packages/player/src/components/VideoPlayer.tsx +++ b/packages/player/src/components/VideoPlayer.tsx @@ -372,8 +372,12 @@ export const VideoPlayer = forwardRef( mediaContext?.actions.setLoading(false); mediaContext?.actions.setError(null); } catch (error) { - const err = - error instanceof Error ? error : new Error("Failed to load source"); + let err; + if (error instanceof Error) + err = error; + else if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') + err = new Error(error.message); + else err = new Error("Failed to load source"); onError?.(err); mediaContext?.actions.setError(err); mediaContext?.actions.setLoading(false); From e70bfef57ecf911a983f6b6751cec8e7fce41d1a Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Mon, 19 Jan 2026 13:20:40 +0100 Subject: [PATCH 3/3] fix: update PlayerSource and load method to support startTime and mimeType parameters --- packages/player/src/components/VideoPlayer.tsx | 2 +- packages/player/src/types/index.ts | 1 + packages/player/src/types/shaka.d.ts | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/player/src/components/VideoPlayer.tsx b/packages/player/src/components/VideoPlayer.tsx index 4658538..36255d1 100644 --- a/packages/player/src/components/VideoPlayer.tsx +++ b/packages/player/src/components/VideoPlayer.tsx @@ -365,7 +365,7 @@ export const VideoPlayer = forwardRef( }, }); } - await playerRef.current.load(source.src); + await playerRef.current.load(source.src, source.startTime, source.type); } onLoadedData?.(); diff --git a/packages/player/src/types/index.ts b/packages/player/src/types/index.ts index f78e350..7e1c2d9 100644 --- a/packages/player/src/types/index.ts +++ b/packages/player/src/types/index.ts @@ -58,6 +58,7 @@ export interface TextTrack { // Player source types export interface PlayerSource { src: string; + startTime?: number; type?: string; drm?: DrmConfig; } diff --git a/packages/player/src/types/shaka.d.ts b/packages/player/src/types/shaka.d.ts index 18da3e2..b01dc85 100644 --- a/packages/player/src/types/shaka.d.ts +++ b/packages/player/src/types/shaka.d.ts @@ -7,7 +7,7 @@ declare module "shaka-player" { constructor(video: HTMLVideoElement); constructor(); attach(video: HTMLVideoElement); - load(uri: string): Promise; + load(uri: string, startTime ? : number | null , mimeType ? : string | null): Promise; destroy(): Promise; configure(config: any): void; getConfiguration(): any;