|
|
1
5
嗨,taglib有一个补丁可以计算毫秒长度,这个家伙添加了一个方法(length milliseconds())可以返回毫秒长度,也许这对你有用: http://web.archiveorange.com/archive/v/sF3Pjr01lSQjsqjrAC7L |
|
2
3
TagLib对音频文件的解析自最初移植以来发生了很大的变化,所以很难说这种差异到底会发生在哪里。您可以检查C++程序的调试消息。 我的猜测是,这两个库对无效头的反应不同。如果找到的第一个帧头无效,TagLib将不会计算任何音频属性值。另一方面,TagLib查找文件音频部分的前16KiB中的第一个有效头。如果遇到的第一个报头损坏,它将扫描下一个报头。如果我没记错的话,错误保存的ID3v2标记可能会导致0xFF FF FF出现在文件音频部分的开头。这将触发上述类型的故障。 问题出在taglib/mpeg/mpegproperties.cpp的第166行。这可以使用与第171行到第191行相同的方法来解决,但是您需要更新代码,以便在一个点之后放弃,以防它真的不是MP3文件。 |
|
|
3
1
在撰写本文时,TagLib 1.11beta 2本机支持以毫秒为单位获取音频长度。您可以使用以下代码执行此操作:
|
|
|
smeeb · 在客户端或服务器端拦截Grails GSP操作 10 年前 |