From c11900da8382b468994e5d268c2da8af0a65ce69 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Fri, 14 Jul 2023 16:58:22 -0700 Subject: [PATCH] Fix #216: ensure Audio Exclusive is set to false when paused --- player/player.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/player/player.go b/player/player.go index fdc4ba0..d10e936 100644 --- a/player/player.go +++ b/player/player.go @@ -345,8 +345,19 @@ func (p *Player) GetVolume() int { return p.vol } +// sets paused status and ensures that audio exlusive is false while paused +// (releases audio device to other players) func (p *Player) setPaused(paused bool) error { - return p.mpv.SetProperty("pause", mpv.FORMAT_FLAG, paused) + if !paused && p.audioExclusive { + if err := p.mpv.SetOptionString("audio-exclusive", "yes"); err != nil { + return err + } + } + err := p.mpv.SetProperty("pause", mpv.FORMAT_FLAG, paused) + if err == nil && paused && p.audioExclusive { + err = p.mpv.SetOptionString("audio-exclusive", "no") + } + return err } // Start playback from the first track in the play queue.