Skip to content

Commit f35937b

Browse files
committed
fix: subtitles turn off when navigating to new video even if it has subtitles
1 parent 409e107 commit f35937b

2 files changed

Lines changed: 14 additions & 12 deletions

File tree

resources/js/components/video/VideoPlayer.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,9 @@ const initVideoPlayer = async () => {
383383
togglePictureInPicture();
384384
}
385385
386-
playerSubtitles.value?.resetSubtitles();
386+
if (playerSubtitles.value?.isShowingSubtitles)
387+
playerSubtitles.value.handleSubtitles(stateVideo.value?.subtitles[0]); // If currently showing, reset to default track or blank if none exists
388+
else playerSubtitles.value?.clearSubtitles(); // Otherwise clear
387389
388390
isLooping.value = false;
389391
currentSpeed.value = 1;

resources/js/components/video/subtitles/PlayerSubtitles.vue

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const subtitlesPopover = useTemplateRef('subtitles-popover');
3535
3636
const playerSubtitleItems = computed(() => {
3737
const items: PopoverItem[] = stateVideo.value.subtitles.map((track) => {
38-
const isCurrentTrack = isShowingSubtitles.value && currentSubtitleTrack.value?.id === track.id;
38+
const isCurrentTrack = isShowingSubtitles.value && currentSubtitleTrack.value?.track_id === track.track_id;
3939
return {
4040
icon: LucideCaptions,
4141
text: `${track.language} (${track.codec})`,
@@ -54,7 +54,7 @@ const playerSubtitleItems = computed(() => {
5454
selected: !isShowingSubtitles.value,
5555
selectedIcon: ProiconsCheckmark,
5656
selectedIconStyle: 'text-primary',
57-
action: resetSubtitles,
57+
action: clearSubtitles,
5858
};
5959
6060
return [subtitlesOff, ...items];
@@ -66,7 +66,9 @@ const playerSubtitleItems = computed(() => {
6666
* @param track -> Defaults to first available subtitle only if not currently showing anything
6767
*/
6868
const handleSubtitles = (track?: SubtitleResource) => {
69-
if (!track && !isShowingSubtitles.value) track = stateVideo.value.subtitles[0];
69+
if (!track && !isShowingSubtitles.value) {
70+
track = stateVideo.value.subtitles[0];
71+
}
7072
7173
isShowingSubtitles.value = !!track;
7274
subtitlesPopover.value?.handleClose();
@@ -83,20 +85,18 @@ const handleSubtitles = (track?: SubtitleResource) => {
8385
};
8486
8587
/**
86-
* Clear Subtitles
88+
* Set subtitles to blank.
8789
*/
88-
const resetSubtitles = () => {
89-
if (isShowingSubtitles.value) handleSubtitles();
90-
else {
91-
currentSubtitleTrack.value = undefined;
92-
subtitlesPopover.value?.handleClose();
93-
}
90+
const clearSubtitles = () => {
91+
currentSubtitleTrack.value = undefined;
92+
isShowingSubtitles.value = false;
93+
subtitlesPopover.value?.handleClose();
9494
};
9595
//#endregion
9696
9797
defineExpose({
9898
handleSubtitles,
99-
resetSubtitles,
99+
clearSubtitles,
100100
isShowingSubtitles,
101101
currentSubtitleTrack,
102102
});

0 commit comments

Comments
 (0)