TagLib#(C#)和TagLib(C)的长度差异
作者:互联网
我目前正在将我的C#应用程序移到Qt / C上.我遇到TagLib的长度问题.我发现奇怪的是TagLib#以毫秒为单位返回音频持续时间,而TagLib以秒为单位返回其(不正确)持续时间. TagLib只为长度值返回零,而TagLib#保持正确.
这是我在C#/ TagLib中的来源#…
TagLib.File tagfile = TagLib.File.Create(path);
uint milliseconds = (uint)tagfile.Properties.Duration.TotalMilliseconds;
这里应该是C / TagLib中几乎相同的东西.我甚至强迫它准确阅读.没有成功.
TagLib::FileName fn(path);
TagLib::FileRef fr(fn, true, TagLib::AudioProperties::Accurate);
uint length = fr.audioProperties()->length();
它对我的大多数媒体文件都有预期的效果.但是,选择的几个音频文件无法返回任何音频属性(标签信息的其余部分读取正常!).返回完全相同的音频属性,TagLib#没有问题.
任何想法都表示赞赏.谢谢.
在赏金结束之前,有没有人有更多的想法?
解决方法:
嗨,有一个taglib的补丁计算长度,以毫秒为单位,这个人添加了一个方法(lengthMilliseconds()),返回长度(以毫秒为单位),这可能对您有用:
http://web.archiveorange.com/archive/v/sF3Pjr01lSQjsqjrAC7L
标签:taglib,c,c-2,taglib-sharp 来源: https://codeday.me/bug/20190723/1517488.html