如何使用时间跨度显示歌曲的最大持续时间?
How to display the maximum duration of a song using timespan?
在我的音乐播放器中,有 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?
首先,要从歌曲(或文件)中检索持续时间,请参阅此
所以post; How to read audio (mp3) tags (Duration and Subtitle), when I use TagLib?
根据 taglib 文档(我觉得有点混乱)- 参见 this API page - lengthInSeconds
属性 returns 一个整数。
所以,要在您的标签上显示它,试试这个。
var vFile = TagLib.File.Create(@"xyz.mp3");
int vDuration = vFile.Properties.lengthInSeconds;
lblTime2.Content = TimeSpan.FromSeconds(vDuration).ToString(@"hh\:mm");
(全部未经测试!)
我突然想到了一个关于将 ToString 语法用于 taglib 的想法,类似于我对标签 1 所做的。现在它按我预期的那样工作,只显示分钟和秒。
这是我使用的代码:
lblTime2.Content=tagFile.Properties.Duration.ToString(@"mm\:ss");
在我的音乐播放器中,有 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?
首先,要从歌曲(或文件)中检索持续时间,请参阅此 所以post; How to read audio (mp3) tags (Duration and Subtitle), when I use TagLib?
根据 taglib 文档(我觉得有点混乱)- 参见 this API page - lengthInSeconds
属性 returns 一个整数。
所以,要在您的标签上显示它,试试这个。
var vFile = TagLib.File.Create(@"xyz.mp3");
int vDuration = vFile.Properties.lengthInSeconds;
lblTime2.Content = TimeSpan.FromSeconds(vDuration).ToString(@"hh\:mm");
(全部未经测试!)
我突然想到了一个关于将 ToString 语法用于 taglib 的想法,类似于我对标签 1 所做的。现在它按我预期的那样工作,只显示分钟和秒。
这是我使用的代码:
lblTime2.Content=tagFile.Properties.Duration.ToString(@"mm\:ss");