我正在与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;
答案 0 :(得分:1)
试试这个:
string curTimeString = mainOutputStream.CurrentTime.ToString("mm\\:ss");
int curTimeSeconds = (int)mainOutputStream.CurrentTime.TotalSeconds;
第一个只会在几分钟和几秒内形成,如果您的音轨较大,则必须添加不同的格式。
有关详细信息,请访问:Timespan formatting