From 411bbef65ce5f366ca0f3b44ecfa9f0ccd4c1cfc Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sun, 24 Mar 2024 23:52:41 +0100 Subject: [PATCH] Fix error handling on some malformed videos --- front/packages/ui/src/player/video.tsx | 9 +++++++-- front/packages/ui/src/player/video.web.tsx | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/front/packages/ui/src/player/video.tsx b/front/packages/ui/src/player/video.tsx index 598395c8..c0915b4d 100644 --- a/front/packages/ui/src/player/video.tsx +++ b/front/packages/ui/src/player/video.tsx @@ -103,13 +103,18 @@ const Video = forwardRef(function Video( onLoad?.(info); }} onBuffer={onBuffer} - onError={onMediaUnsupported} + onError={(error) => { + console.error(error); + if (mode === PlayMode.Direct) onMediaUnsupported?.(); + else onError?.(error); + }} selectedVideoTrack={ video === -1 ? { type: SelectedVideoTrackType.AUDO } : { type: SelectedVideoTrackType.RESOLUTION, value: video } } - selectedAudioTrack={{ type: SelectedTrackType.INDEX, value: audio.index }} + // when video file is invalid, audio is undefined + selectedAudioTrack={{ type: SelectedTrackType.INDEX, value: audio?.index ?? 0 }} textTracks={subtitles?.map((x) => ({ type: MimeTypes.get(x.codec) as any, uri: x.link!, diff --git a/front/packages/ui/src/player/video.web.tsx b/front/packages/ui/src/player/video.web.tsx index 72001f1f..5a303e26 100644 --- a/front/packages/ui/src/player/video.web.tsx +++ b/front/packages/ui/src/player/video.web.tsx @@ -182,7 +182,7 @@ const Video = forwardRef<{ seek: (value: number) => void }, VideoProps>(function if (!hls) return; const update = () => { if (!hls) return; - hls.audioTrack = audio.index; + hls.audioTrack = audio?.index ?? 0; }; update(); hls.on(Hls.Events.AUDIO_TRACKS_UPDATED, update);