您的位置 首页 知识分享

在 Go 中计算 Ogg 音频持续时间:分步指南

我试图克隆不和谐,我发现他们使用 ogg 格式的音频(我认为),我试图将音频持续时间存储在数据库中。 关于获取…

在 Go 中计算 Ogg 音频持续时间:分步指南

我试图克隆不和谐,我发现他们使用 ogg 格式的音频(我认为),我试图将音频持续时间存储在数据库中。

关于获取 ogg 音频持续时间的 stack 解决方案,我发现很有趣。该方法包括查找文件末尾,找到最后一个 ogg 页头,并读取其颗粒位置。

 func getOggDurationMs(reader io.Reader) (int64, error) {     // Read the entire Ogg file into a byte slice     data, err := io.ReadAll(reader)     if err != nil {         return 0, fmt.Errorf("error reading Ogg file: %w", err)     }      // Search for the "OggS" signature and calculate the length     var length int64     for i := len(data) - 14; i &gt;= 0 &amp;&amp; length == 0; i-- {         if data[i] == 'O' &amp;&amp; data[i+1] == 'g' &amp;&amp; data[i+2] == 'g' &amp;&amp; data[i+3] == 'S' {             length = int64(readLittleEndianInt(data[i+6 : i+14]))         }     }      // Search for the "vorbis" signature and calculate the rate     var rate int64     for i := 0; i     <p>我决定在这里分享它,我发现这个实现非常酷,也许可以帮助其他人</p>                                    
登录后复制

以上就是在 Go 中计算 Ogg 音频持续时间:分步指南的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/1536.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部