Skip to content

Commit

Permalink
Merge pull request #271 from ivoryguard/master
Browse files Browse the repository at this point in the history
Add noStop option to EasySpeech.speak in EasySpeech.js
  • Loading branch information
jankapunkt committed Apr 25, 2024
2 parents ed8d142 + 7d74fb0 commit 06b9ae7
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/EasySpeech.js
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ const createUtterance = text => {
* @fulfill {SpeechSynthesisEvent} Resolves to the `end` event
* @reject {SpeechSynthesisEvent} rejects using the `error` event
*/
EasySpeech.speak = ({ text, voice, pitch, rate, volume, force, infiniteResume, ...handlers }) => {
EasySpeech.speak = ({ text, voice, pitch, rate, volume, force, infiniteResume, noStop, ...handlers }) => {
ensureInit({ force })

if (!validate.text(text)) {
Expand Down Expand Up @@ -809,7 +809,11 @@ EasySpeech.speak = ({ text, voice, pitch, rate, volume, force, infiniteResume, .

// make sure we have no mem-leak
clearTimeout(timeoutResumeInfinity)
internal.speechSynthesis.cancel()

// do not cancel currently playing voice, if noStop option is true explicitly.
if (!(noStop === true)) {
internal.speechSynthesis.cancel()
}

setTimeout(() => internal.speechSynthesis.speak(utterance), 10)
})
Expand Down

0 comments on commit 06b9ae7

Please sign in to comment.