Returns path to audio files

This commit is contained in:
nemunaire 2021-01-29 01:38:26 +01:00
parent d0ffc59bec
commit e7d0bb9538

13
main.go
View File

@ -137,11 +137,13 @@ func speakWeather() {
}
}
func loadFile(path string) (s beep.StreamSeekCloser, format beep.Format, err error) {
func loadFile(filepath string) (name string, s beep.StreamSeekCloser, format beep.Format, err error) {
for _, decoder := range []func(io.ReadCloser) (beep.StreamSeekCloser, beep.Format, error){flac.Decode, mp3.Decode, wav.Decode} {
var fd *os.File
fd, err = os.Open(path)
name = path.Base(filepath)
fd, err = os.Open(filepath)
if err != nil {
return
}
@ -183,17 +185,19 @@ func main() {
sampleRate := beep.SampleRate(*sr)
paths := []string{}
playlist := []beep.Streamer{}
formats := []beep.Format{}
// Load playlist
log.Println("Loading playlist...")
for _, arg := range flag.Args() {
s, f, err := loadFile(arg)
p, s, f, err := loadFile(arg)
if err != nil {
log.Printf("Unable to load %s: %s", arg, err)
continue
}
paths = append(paths, p)
playlist = append(playlist, s)
formats = append(formats, f)
}
@ -202,6 +206,7 @@ func main() {
log.Println("Shuffling playlist...")
// Shuffle the playlist
rand.Shuffle(len(playlist), func(i, j int) {
paths[i], paths[j] = paths[j], paths[i]
playlist[i], playlist[j] = playlist[j], playlist[i]
formats[i], formats[j] = formats[j], formats[i]
})
@ -221,7 +226,7 @@ func main() {
if !hasClaironed && time.Since(launched) >= *claironTime {
log.Println("clairon time!")
hasClaironed = true
sample, format, err := loadFile("/home/nemunaire/www/audio/miracle-morning/clairon-reveil.mp3")
_, sample, format, err := loadFile("/home/nemunaire/www/audio/miracle-morning/clairon-reveil.mp3")
if err == nil {
volume.Volume = 1
dontUpdateVolume = true