From 292762f272f7b04cf7b8944e3d7667f93ca72e79 Mon Sep 17 00:00:00 2001 From: Hexer Date: Wed, 10 Dec 2025 15:19:41 +0800 Subject: [PATCH 1/2] fix: IOS 26 err --- src/player/player-engine-dedicated-thread.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/player/player-engine-dedicated-thread.ts b/src/player/player-engine-dedicated-thread.ts index 297652b..aa0935f 100644 --- a/src/player/player-engine-dedicated-thread.ts +++ b/src/player/player-engine-dedicated-thread.ts @@ -375,7 +375,7 @@ class PlayerEngineDedicatedThread implements PlayerEngine { case 'mse_init': { const packet = message_packet as WorkerMessagePacketMSEInit; // Use ManagedMediaSource only if w3c MediaSource is not available (e.g. iOS Safari) - const use_managed_media_source = ('ManagedMediaSource' in self) && !('MediaSource' in self); + const use_managed_media_source = ('ManagedMediaSource' in self) && (!('MediaSource' in self) || !self.MediaSource); if (use_managed_media_source) { // When using ManagedMediaSource, MediaSource will not open unless disableRemotePlayback is set to true this._media_element['disableRemotePlayback'] = true; From 4a2538753d7cb628a6411d8dd1faf1e3d4171849 Mon Sep 17 00:00:00 2001 From: Hexer Date: Tue, 23 Dec 2025 11:01:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20IOS26=20?= =?UTF-8?q?=E4=B8=8A=20MediaSource=20in=20self=20=E4=B8=BA=20true=20?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/mse-controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/mse-controller.js b/src/core/mse-controller.js index c6846b3..dcf64eb 100644 --- a/src/core/mse-controller.js +++ b/src/core/mse-controller.js @@ -48,7 +48,7 @@ class MSEController { }; // Use ManagedMediaSource only if w3c MediaSource is not available (e.g. iOS Safari) - this._useManagedMediaSource = ('ManagedMediaSource' in self) && !('MediaSource' in self); + this._useManagedMediaSource = ('ManagedMediaSource' in self) && (!('MediaSource' in self) || !self.MediaSource); this._mediaSource = null; this._mediaSourceObjectURL = null;