【问题标题】:How to find the length of mp3 file in golang?如何在golang中找到mp3文件的长度?
【发布时间】:2020-02-18 13:09:01
【问题描述】:

我有一个 .mp3 文件存储在硬盘上。如何使用 go 语言找到它的长度(以秒为单位)?

我找到了 2 个关于 mp3 的 go 库:

但是没有工作示例如何以秒为单位获取 mp3 文件长度。

【问题讨论】:

    标签: go mp3


    【解决方案1】:

    您可以计算每帧的持续时间并将它们相加以得出总持续时间。

    这是这个 (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)
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      相关资源
      最近更新 更多