2012-12-03 47 views
0

我正在使用NAudio播放器,請參閱http://naudio.codeplex.com/wikipage?title=MP3。一切工作正常,但是當我編寫一個顯示當前時間和持續時間的trackbar時,甚至可以查找歌曲的任何位置,所以我用計時器以mainOutputStream.CurrentTime更新當前時間,但格式不好看, 然後我重新格式化它是這樣的:C#NAudio Trackbar

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

什麼類型的對象是CURRENTTIME和它利潤歸還什麼格式,你需要什麼樣的格式? –

+0

這是'timespan',我把它放到trackbar中,所以我需要'int'。 – giiYanJ

+0

秒的詮釋? –

回答

1

試試這個:

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

的第一個只有幾分鐘和幾秒鐘才能形成,如果你的音軌更大將不得不添加不同的格式。對

更多信息可以在這裏找到:Timespan formatting

+0

CurrentTime.TotalSeconds是'double',並且有十進制後面,無論如何刪除它? – giiYanJ

+0

opps,對不起,我忘了投爲int,固定在 –

+0

以上哇,工作就像上帝! 持續時間部分如何? mainOutputStream.Length只給出字節,任何方式來計算持續時間,但不是平均字節/秒? 編輯:剛剛發現,有一個'TotalTime'對象,那裏的時間跨度很好。 – giiYanJ