Skip to content

Commit

Permalink
Merge pull request #1 from omatztw/fix/bwmarrin#17-listening-stop-for…
Browse files Browse the repository at this point in the history
…ever

Stop goroutine when audio is done playing.
  • Loading branch information
omatztw committed Feb 23, 2022
2 parents caaac75 + 0315370 commit 10123a3
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions dgvoice.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,17 @@ func PlayAudioFile(v *discordgo.VoiceConnection, filename string, stop <-chan bo
// prevent memory leak from residual ffmpeg streams
defer run.Process.Kill()

// Stop goroutine when audio is done playing
done := make(chan struct{})
defer close(done)

//when stop is sent, kill ffmpeg
go func() {
<-stop
err = run.Process.Kill()
select {
case <-stop:
err = run.Process.Kill()
case <-done:
}
}()

// Send "speaking" packet over the voice websocket
Expand Down

0 comments on commit 10123a3

Please sign in to comment.