在我的音乐播放器中,有2个标签。
标签1用于显示进度时间:
lblTime.Content = TimeSpan.FromSeconds(sliProgress.Value).ToString(@"mm\:ss");
标签2用于显示歌曲的最长持续时间:
lblTime2.Content = TimeSpan.MaxValue.ToString(@"mm\:ss");
标签1从开始播放和移动滑块时效果很好。但标签2在某种程度上并没有显示任何东西。我尝试在taglib-sharp中使用Properties.Duration语法。但对我来说,它显示了太多细节,因为我只想显示分钟和秒数,而不是几小时甚至几毫秒。
如何修复标签2?
答案 0 :(得分:0)
首先,要从歌曲(或更确切地说是文件)中检索持续时间,请参阅此内容 SO帖子; How to read audio (mp3) tags (Duration and Subtitle), when I use TagLib?
根据taglib文档(我觉得有点混乱) - 请参阅this API page - lengthInSeconds
属性返回一个整数。
因此,要在标签上显示,请尝试此操作。
var vFile = TagLib.File.Create(@"xyz.mp3");
int vDuration = vFile.Properties.lengthInSeconds;
lblTime2.Content = TimeSpan.FromSeconds(vDuration).ToString(@"hh\:mm");
(全部未经测试!)
答案 1 :(得分:0)
我突然发现了一个关于将toString语法用于taglib的想法,类似于我对标签1所做的那样。现在它按照我的预期工作,只显示几分钟和几秒钟。
这是我使用的代码:
lblTime2.Content=tagFile.Properties.Duration.ToString(@"mm\:ss");