1

我正在开发一个 Windows 窗体应用程序,其中我有一个使用“axWindowsMediaPlayer”组件的音乐播放器。它可以导入 mp3 和 wav 文件,在列表框中显示歌曲,保存和加载播放列表等。

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

我该怎么做?

这是我的尝试之一:

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

这就是我卡住的地方。

[编辑]此刻我已正确格式化它,但现在计数并没有下降。

4

3 回答 3

3

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

AxWindowsMediaPlayer1.currentMedia.duration

AxWindowsMediaPlayer1.Ctlcontrols.currentPosition

两者都在几秒钟内,因此您只需将它们转换为所需的格式。您可以使用:

TimeSpan.FromSeconds(double value)

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

于 2015-01-14T23:30:04.500 回答
1

就像是:

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

或者当您有 DateTime 时:

datetimeVariable.ToString("mm:ss")

正如马特约翰逊所提到的,这里有一个链接

于 2015-01-14T23:24:20.643 回答
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

于 2015-01-14T23:30:18.640 回答