From 5fd81183f54662fdf08549c0d635e80166c62fe9 Mon Sep 17 00:00:00 2001 From: Physick <96335032+DegustatorPonos@users.noreply.github.com> Date: Sat, 6 Dec 2025 12:05:43 +0500 Subject: initial endpoints --- Audio/Meta.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Audio/Meta.go (limited to 'Audio/Meta.go') diff --git a/Audio/Meta.go b/Audio/Meta.go new file mode 100644 index 0000000..9e288f3 --- /dev/null +++ b/Audio/Meta.go @@ -0,0 +1,35 @@ +package audio + +import ( + "io" + "os" + "time" + + "github.com/tcolgate/mp3" +) + +func GetSongDuration(path string) (time.Duration, error) { + var file, fopenErr = os.Open(path) + if fopenErr != nil { + return time.Duration(0), fopenErr + } + defer file.Close() + + var track = mp3.NewDecoder(file) + var duration time.Duration + var frame mp3.Frame + var skipped = 0 + + for { + var err = track.Decode(&frame, &skipped) + if err != nil { + if err == io.EOF { + break + } + return time.Duration(0), err + } + + duration += frame.Duration() + } + return duration, nil +} -- cgit v1.3