Plugin Captions Selector - Check if there is caption tracks available, add "disable captions"

This commit is contained in:
Fermin Cirella
2022-10-22 01:13:04 -03:00
parent f58c10b02d
commit c8a852bf2e

View File

@ -15,17 +15,32 @@ function setup(event) {
document.querySelector('.right-controls-buttons').append(captionsSettingsButton); document.querySelector('.right-controls-buttons').append(captionsSettingsButton);
captionsSettingsButton.onclick = function chooseQuality() { captionsSettingsButton.onclick = function chooseQuality() {
api.pauseVideo();
const currentCaptionTrack = api.getOption("captions", "track");
const captionTrackList = api.getOption("captions", "tracklist"); const captionTrackList = api.getOption("captions", "tracklist");
const currentIndex = captionTrackList.indexOf(captionTrackList.find(track => track.languageCode === currentCaptionTrack.languageCode)); if (captionTrackList?.length) {
api.pauseVideo();
ipcRenderer.invoke('captionsSelector', captionTrackList.map(track => track.displayName), currentIndex).then(promise => { const currentCaptionTrack = api.getOption("captions", "track");
if (promise.response === -1) return; const currentIndex = captionTrackList.indexOf(captionTrackList.find(track => track.languageCode === currentCaptionTrack.languageCode));
const newCaptions = captionTrackList[promise.response];
api.setOption("captions", "track", { languageCode: newCaptions.languageCode }); const captionLabels = [
}); ...captionTrackList.map(track => track.displayName),
'None'
];
ipcRenderer.invoke('captionsSelector', captionLabels, currentIndex).then(promise => {
if (promise.response === -1) return;
const newCaptions = captionTrackList[promise.response];
if (newCaptions) {
api.loadModule("captions");
api.setOption("captions", "track", { languageCode: newCaptions.languageCode });
} else {
api.unloadModule("captions");
}
setTimeout(() => api.playVideo());
});
}
} }
} }