如何将歌曲的持续时间格式化为分钟和秒?

时间:2015-01-14 23:21:23

标签: c# .net winforms axwindowsmediaplayer

我正在开发一个Windows Form应用程序,其中我有一个使用" axWindowsMediaPlayer"零件。它可以导入mp3和wav文件,在列表框中显示歌曲,保存和加载播放列表等。

现在我想要一个标签,以分钟:秒格式显示当前正在播放的歌曲的已用时间。

我该怎么做?

这是我的一次尝试:

int count = (int)axWindowsMediaPlayer.currentMedia.duration;
count--;
elapsedLbl.Text = count.ToString();

在这里,我被困住了。

[编辑] 在这一刻我已经正确格式化了,但现在计数没有下降。

3 个答案:

答案 0 :(得分:3)

如果使用Windows Media Player ActiveX控件,则会有持续时间和currentPosition属性。

AxWindowsMediaPlayer1.currentMedia.duration

AxWindowsMediaPlayer1.Ctlcontrols.currentPosition

两者都是秒,所以你只需要将它们转换为所需的格式。您可以使用:

TimeSpan.FromSeconds(double value)

要创建一个时间跨度,然后使用该时间跨度将其转换为YoupTube提到的格式化字符串。或者像Mark Shevchenko提到的那样,手动将秒数转换为分钟和秒数。

答案 1 :(得分:1)

类似的东西:

timespanVariable.ToString("mm:\\ss")

或者当你有一个DateTime:

datetimeVariable.ToString("mm:ss")

正如马特·约翰逊所说,这里是a link

答案 2 :(得分:0)

AxWindowsMediaPlayer对象可以通过currentMedia属性检索当前媒体项。 durationString这个对象上有一个属性,它返回' HH:MM:SS'格式。使用duration对象可以使用其他格式。

AxWindowsMediaPlayer文档 http://msdn.microsoft.com/en-us/library/windows/desktop/dd562405(v=vs.85).aspx

IWMPMedia界面文档 http://msdn.microsoft.com/en-us/library/windows/desktop/dd563397%28v=vs.85%29.aspx