From 242fa6c84715f23d34fc46a1efcbd525633fcabe Mon Sep 17 00:00:00 2001 From: mtvpls Date: Sat, 20 Dec 2025 01:25:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D=E6=8D=A2?= =?UTF-8?q?=E9=9B=86=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 5 +++++ VERSION.txt | 2 +- src/app/play/page.tsx | 19 ++++++++++++++++++- src/lib/changelog.ts | 10 ++++++++++ src/lib/version.ts | 2 +- 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index cdcdce5..c992117 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +## [203.2.1] - 2025-12-20 + +### Fixed +- 修复IOS端换集报错播放器初始化失败 + ## [203.2.0] - 2025-12-19 ### Added diff --git a/VERSION.txt b/VERSION.txt index 2cf5afb..ce98b76 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -203.2.0 \ No newline at end of file +203.2.1 \ No newline at end of file diff --git a/src/app/play/page.tsx b/src/app/play/page.tsx index 37fc21b..8264d65 100644 --- a/src/app/play/page.tsx +++ b/src/app/play/page.tsx @@ -1067,7 +1067,7 @@ function PlayPageClient() { // 获取当前弹幕设置的快照,避免循环引用 const currentDanmakuSettings = danmakuSettingsRef.current; const danmakuPluginOption = danmakuPluginRef.current.option; - + const currentSettings = { ...currentDanmakuSettings, opacity: danmakuPluginOption.opacity || currentDanmakuSettings.opacity, @@ -1093,10 +1093,19 @@ function PlayPageClient() { artPlayerRef.current.destroy(); artPlayerRef.current = null; + // 清空 DOM 容器,确保没有残留元素 + if (artRef.current) { + artRef.current.innerHTML = ''; + } + console.log('播放器资源已清理'); } catch (err) { console.warn('清理播放器资源时出错:', err); artPlayerRef.current = null; + // 即使出错也要清空容器 + if (artRef.current) { + artRef.current.innerHTML = ''; + } } } }; @@ -2920,6 +2929,14 @@ function PlayPageClient() { // 异步初始化播放器 const initPlayer = async () => { try { + // iOS需要等待DOM完全清理 + await new Promise(resolve => setTimeout(resolve, 100)); + + // 再次确保容器为空 + if (artRef.current) { + artRef.current.innerHTML = ''; + } + // 动态导入播放器库 const [ArtplayerModule, HlsModule, DanmukuPlugin] = await Promise.all([ import('artplayer'), diff --git a/src/lib/changelog.ts b/src/lib/changelog.ts index 0511643..b4e03b8 100644 --- a/src/lib/changelog.ts +++ b/src/lib/changelog.ts @@ -11,6 +11,16 @@ export interface ChangelogEntry { export const changelog: ChangelogEntry[] = [ { + version: '203.2.1', + date: '2025-12-20', + added: [ + ], + changed: [ + ], + fixed: [ + "修复IOS端换集报错播放器初始化失败" + ] + },{ version: '203.2.0', date: '2025-12-19', added: [ diff --git a/src/lib/version.ts b/src/lib/version.ts index 5023d4f..5f22295 100644 --- a/src/lib/version.ts +++ b/src/lib/version.ts @@ -1,6 +1,6 @@ /* eslint-disable no-console */ -const CURRENT_VERSION = '203.2.0'; +const CURRENT_VERSION = '203.2.1'; // 导出当前版本号供其他地方使用 export { CURRENT_VERSION };