You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
660 B
Go

//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 == false {
if *stopPlaying {
break
}
}
return nil
}