Я работаю с плеером с 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;
timespan
, я помещаю его в трекбар, поэтому мне нужноint
. - person giiYanJ   schedule 03.12.201202:44
. - person giiYanJ   schedule 03.12.2012