我在硬盘上存储了一个.mp3文件。如何使用go语言在几秒钟内找到它的长度?
我找到了两个关于mp3的go库:
但是,没有关于如何以秒为单位获得mp3文件长度的示例。
发布于 2020-02-19 06:18:05
您可以计算每个帧的持续时间,并将它们加在一起以找到总持续时间。
下面是这个(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)
}https://stackoverflow.com/questions/60281655
复制相似问题