我正在开发一个Windows Form应用程序,其中我有一个使用" axWindowsMediaPlayer"零件。它可以导入mp3和wav文件,在列表框中显示歌曲,保存和加载播放列表等。
现在我想要一个标签,以分钟:秒格式显示当前正在播放的歌曲的已用时间。
我该怎么做?
这是我的一次尝试:
int count = (int)axWindowsMediaPlayer.currentMedia.duration;
count--;
elapsedLbl.Text = count.ToString();
在这里,我被困住了。
[编辑] 在这一刻我已经正确格式化了,但现在计数没有下降。
答案 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