我正在我的应用程序中处理一些音频文件(mp3、wav、..etc)我正在使用System.Windows.Media
命名空间中的 MediaPlayer 类。但我在计算声音文件的持续时间时遇到了一些问题,我的表单实际上是小型媒体播放器,它有TrackBar
一个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
是真的,然后继续。
我怎样才能解决这个问题?如何获取音频文件的持续时间?他们所说的时间跨度是什么意思?
任何帮助将不胜感激,谢谢:)