//go:build windows // +build windows package main import ( "os" "time" "github.com/gopxl/beep" "github.com/gopxl/beep/speaker" "github.com/gopxl/beep/wav" ) func PlayWAVFile(filename string, stopPlaying *bool) error { f, err := os.Open(filename) if err != nil { return err } streamer, format, err := wav.Decode(f) if err != nil { return err } defer streamer.Close() speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10)) done := false callbackFunc := beep.Callback(func() { done = true }) speaker.Play( beep.Seq(streamer, callbackFunc), ) for !done { if *stopPlaying { break } } return nil }