From f06b10feec7e5eca308b5dce3f77a132358e49d1 Mon Sep 17 00:00:00 2001 From: zimplexing Date: Mon, 14 Jul 2025 13:51:25 +0800 Subject: [PATCH] fix: Update outro start time calculation to handle cases with undefined durationMillis --- stores/playerStore.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/stores/playerStore.ts b/stores/playerStore.ts index 6db5007..6795b25 100644 --- a/stores/playerStore.ts +++ b/stores/playerStore.ts @@ -226,7 +226,8 @@ const usePlayerStore = create((set, get) => ({ }); } else { // Set the time - const newOutroStartTime = status.positionMillis; + if (!status.durationMillis) return; + const newOutroStartTime = status.durationMillis - status.positionMillis; set({ outroStartTime: newOutroStartTime }); get()._savePlayRecord({ outroStartTime: newOutroStartTime }); Toast.show({ @@ -270,7 +271,11 @@ const usePlayerStore = create((set, get) => ({ const { detail, currentEpisodeIndex, episodes, outroStartTime, playEpisode } = get(); - if (outroStartTime && newStatus.positionMillis >= outroStartTime) { + if ( + outroStartTime && + newStatus.durationMillis && + newStatus.positionMillis >= newStatus.durationMillis - outroStartTime + ) { if (currentEpisodeIndex < episodes.length - 1) { playEpisode(currentEpisodeIndex + 1); return; // Stop further processing for this update