Added basic music playback + tui

This commit is contained in:
2022-03-20 19:50:55 +01:00
parent f9124deba7
commit 8fff93464a
13 changed files with 527 additions and 1 deletions

32
pkg/track_player.go Normal file
View File

@@ -0,0 +1,32 @@
package gomus
import (
"io"
"time"
"github.com/faiface/beep"
"github.com/faiface/beep/flac"
"github.com/faiface/beep/speaker"
)
type trackPlayer struct {
currentStream beep.StreamSeekCloser
}
func (t trackPlayer) play(reader io.Reader) {
if t.currentStream != nil {
t.currentStream.Close()
}
streamer, format, err := flac.Decode(reader)
check(err)
err = speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10))
check(err)
speaker.Play(streamer)
t.currentStream = streamer
}
func (t trackPlayer) close() {
t.currentStream.Close()
}