编程语言
首页 > 编程语言> > TagLib#(C#)和TagLib(C)的长度差异

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