我正在制作节奏游戏,我需要一种快速方法来获取 ogg 文件的长度。我能想到的唯一方法是非常快速地传输文件而不播放它,但如果我有数百首歌曲,这显然是不切实际的。另一种方法是将文件的长度存储在某种属性文件中,但我想避免这种情况。我知道一定有某种方法可以做到这一点,因为大多数音乐播放器都可以告诉您歌曲的长度。
最快的方法是查找文件末尾,然后返回到您找到的最后一个 Ogg 页头并读取其 capsulePosition(这是文件中每个通道的样本总数)。这并不是万无一失的(您可能正在查看一个链接文件,在这种情况下您只能获得最后一个流的长度),但应该适用于绝大多数 Ogg 文件。
如果您需要阅读 Ogg 页头的帮助,您可以阅读 Jorbis 源代码...简短的版本是查找“OggS”,读取一个字节(应该是 0),读取一个字节(只有位 3 应该是设置),然后读取 64 位小端值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)