Я работаю над Windows Form Application, в котором у меня есть музыкальный проигрыватель с помощью компонента "axWindowsMediaPlayer". Он может импортировать файлы mp3 и wav, отображать песни в списке, сохранять и загружать список воспроизведения и т.д.
Теперь я хочу, чтобы метка показывала прошедшее время песни, которая в данный момент воспроизводится в формате минут: секунды.
Как мне это сделать?
Здесь одна из моих попыток:
int count = (int)axWindowsMediaPlayer.currentMedia.duration;
count--;
elapsedLbl.Text = count.ToString();
Здесь, где я застрял.
[EDIT] В этот момент я отформатировал его правильно, но теперь счет не идет вниз.
Если вы используете элемент управления ActiveX проигрывателя Windows Media, есть продолжительность и свойство currentPosition.
AxWindowsMediaPlayer1.currentMedia.duration
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
Оба в считанные секунды, поэтому вам просто нужно преобразовать их в нужный формат. Вы можете использовать:
TimeSpan.FromSeconds(double value)
Чтобы создать временной интервал, а затем с помощью этого времени переведите его в форматированную строку, как упоминал YoupTube. Или вручную преобразуйте секунды в минуты и секунды, как отметил Марк Шевченко.
Что-то вроде:
timespanVariable.ToString("mm:\\ss")
Или когда у вас есть DateTime:
datetimeVariable.ToString("mm:ss")
Как упоминал Мэтт Джонсон, вот ссылка на него.
"mm\\:ss"
или @"mm\:ss"
.
Объект AxWindowsMediaPlayer может извлекать текущий элемент мультимедиа через свойство currentMedia
. На этом объекте durationString
есть свойство, которое возвращает формат "HH: MM: SS". Другие форматы можно использовать с помощью объекта duration
.
Документы AxWindowsMediaPlayer http://msdn.microsoft.com/en-us/library/windows/desktop/dd562405(v=vs.85).aspx
Документы интерфейса IWMPMedia http://msdn.microsoft.com/en-us/library/windows/desktop/dd563397%28v=vs.85%29.aspx
TimeSpan
. Если вам нужно больше информации, вам нужно будет предоставить нам более подробную информацию о том, что вы пытались.