Работя с някои аудио файлове в приложението си (mp3, wav, ..и т.н.) Използвах класа MediaPlayer от пространството на имената System.Windows.Media
.. но имах някои проблеми с изчисляването на продължителността на звуковия файл, моята форма всъщност е малък медиен плейър, той има TrackBar
a ComboBox
и нормалните бутони next
, previous
и play
.. Използвах този код, за да получа продължителността на звуковия файл, за да определя максималната стойност на лентата на записа:
private void MusicComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
System.Windows.Duration duration = Player.NaturalDuration;
SeekBar.Value = 0;
Player.Open(new Uri(soundEffectPackage.GetMusicAt(MusicComboBox.SelectedIndex)));
if(duration.HasTimeSpan)
SeekBar.Maximum = duration.TimeSpan.Seconds;
}
Това работи добре само с някои от файловете, докато други файлове нямат TimeSpan
, така че if не се изпълнява и ако премахна if, ще получа изключение, което казва, че първо трябва да проверя, за да видя ако HasTimeSpan
е вярно, тогава продължаваме напред.
Как мога да поправя това? Как мога да получа продължителността на аудио файла? И какво имат предвид под времеви интервал?
Всяка помощ ще бъде оценена, благодаря :)