diff --git a/config/defaults.js b/config/defaults.js index 73c49649..b62432c6 100644 --- a/config/defaults.js +++ b/config/defaults.js @@ -91,6 +91,9 @@ const defaultConfig = { "saveSize": false, "hotkey": "P" }, + "skip-silences": { + onlySkipBeginning: false, + }, }, }; diff --git a/plugins/skip-silences/front.js b/plugins/skip-silences/front.js index 16f7ff94..17a534c9 100644 --- a/plugins/skip-silences/front.js +++ b/plugins/skip-silences/front.js @@ -1,7 +1,8 @@ const hark = require("hark/hark.bundle.js"); -module.exports = () => { +module.exports = (options) => { let isSilent = false; + let hasAudioStarted = false; document.addEventListener("apiLoaded", () => { const video = document.querySelector("video"); @@ -10,6 +11,10 @@ module.exports = () => { interval: 2, // ms }); const skipSilence = () => { + if (options.onlySkipBeginning && hasAudioStarted) { + return; + } + if (isSilent && !video.paused) { video.currentTime += 0.2; // in s } @@ -17,6 +22,7 @@ module.exports = () => { speechEvents.on("speaking", function () { isSilent = false; + hasAudioStarted = true; }); speechEvents.on("stopped_speaking", function () { @@ -35,10 +41,12 @@ module.exports = () => { }); video.addEventListener("play", function () { + hasAudioStarted = false; skipSilence(); }); video.addEventListener("seeked", function () { + hasAudioStarted = false; skipSilence(); }); });