Как узнать длину mp3 файла в golang? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть файл .mp3, хранящийся на жестком диске. Как я могу найти его длину в секундах, используя язык go?

Я нашел 2 go библиотек, относящихся к mp3:

Но нет рабочих примеров, как получить длину mp3-файла в секундах.

1 Ответ

2 голосов
/ 19 февраля 2020

Вы можете рассчитать продолжительность каждого кадра и суммировать их, чтобы найти общую продолжительность.

Вот пример этой (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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...