C#NAudio Trackbar

时间:2012-12-03 00:20:39

标签: c# duration naudio trackbar

我正在与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;

1 个答案:

答案 0 :(得分:1)

试试这个:

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

第一个只会在几分钟和几秒内形成,如果您的音轨较大,则必须添加不同的格式。

有关详细信息,请访问:Timespan formatting