Вы можете рассчитать продолжительность каждого кадра и суммировать их, чтобы найти общую продолжительность.
Вот пример этой (https://github.com/tcolgate/mp3
) библиотеки для определения продолжительности:
package main
import (
"fmt"
"io"
"os"
"github.com/tcolgate/mp3"
)
func main() {
t := 0.0
r, err := os.Open("<mp3 file path>")
if err != nil {
fmt.Println(err)
return
}
d := mp3.NewDecoder(r)
var f mp3.Frame
skipped := 0
for {
if err := d.Decode(&f, &skipped); err != nil {
if err == io.EOF {
break
}
fmt.Println(err)
return
}
t = t + f.Duration().Seconds()
}
fmt.Println(t)
}