From e1c705311be4b09808af39800cf8eedfa3ce3da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Moska=C5=82a?= Date: Wed, 25 Mar 2026 00:13:31 +0100 Subject: [PATCH] fix(web): bridge onError to consumers and fix __destroy cleanup --- packages/react-native-video/src/core/VideoPlayer.web.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/react-native-video/src/core/VideoPlayer.web.ts b/packages/react-native-video/src/core/VideoPlayer.web.ts index c535d889..eba2fce5 100644 --- a/packages/react-native-video/src/core/VideoPlayer.web.ts +++ b/packages/react-native-video/src/core/VideoPlayer.web.ts @@ -80,6 +80,11 @@ class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase { this.player = player; this.mediaSession = new MediaSessionHandler(this.player); + // Bridge web errors to JS event system so consumers receive them via addEventListener. + (this.eventEmitter as WebEventEmitter).addOnErrorListener((error) => { + this.triggerJSEvent("onError", error); + }); + this.replaceSourceAsync(source); } @@ -89,6 +94,9 @@ class VideoPlayer extends VideoPlayerEvents implements VideoPlayerBase { * @internal */ __destroy() { + this.mediaSession.disable(); + (this.eventEmitter as WebEventEmitter).destroy(); + this.clearAllEvents(); this.player.dispose(); }