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