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