0

我正在使用 NAudio 播放器,请参阅http://naudio.codeplex.com/wikipage?title=MP3。一切正常,但是当我编写一个显示当前时间和持续时间的轨迹栏时,甚至可以搜索歌曲的任何位置,所以我使用计时器来更新当前时间mainOutputStream.CurrentTime,但是格式不好看,然后我像这样重新格式化它:

string curTime = mainOutputStream.CurrentTime.ToString();
string[] format = curTime.Split(':');
format[2] = format[2].Remove(2);
curTime = format[1] + format[2];

format[2] = format[2].Remove(2);总是返回错误。并且似乎没有办法在时间跨度上获得持续时间,但我不喜欢使用 averageBytePerSecond 或类似的东西,所以无论如何可以更简单更好地完成这些工作吗? 上述参考中的所有变量

谢谢。

编辑:问题解决了~我用了这个方法:
获取持续时间:

string duration = mainOutputStream.TotalTime.ToString("mm\\:ss");
trackPosition.Maximum = (int)mainOutputStream.TotalTime.TotalSeconds;

获取当前时间:

string curTime = mainOutputStream.CurrentTime.ToString("mm\\:ss");
trackPosition.Value = (int)mainOutputStream.CurrentTime.TotalSeconds;
4

1 回答 1

1

试试这个:

string curTimeString = mainOutputStream.CurrentTime.ToString("mm\\:ss");
int curTimeSeconds =  (int)mainOutputStream.CurrentTime.TotalSeconds;

第一个仅格式化为分钟和秒,如果您的音轨较大,则必须添加不同的格式。

更多信息可以在这里找到:时间跨度格式

于 2012-12-03T00:43:00.827 回答