2012-08-01 15 views
0

我与一些音频文件的工作得到一个音频文件的持续时间(MP3,WAV,..等) 我用的是MediaPlayer的类从System.Windows.Media命名空间.. 但我有一些问题与计算的声音文件的持续时间, 我的形式实际上是一个小型的媒体播放器,它有一个TrackBarComboBox 和正常nextpreviousplay按钮.. 我用这个代码来获取声音文件的持续时间来确定跟踪栏的最大值:问题用在我的应用程序在MediaPlayer类

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所以如果没有得到执行,如果我删除了如果,我会得到一个异常,说我应首先检查HasTimeSpan是否为真,然后继续。

我该如何解决这个问题? 我怎样才能得到音频文件的持续时间? 它们在一段时间内意味着什么?

任何帮助,将不胜感激,谢谢:)

回答

1

根据This

你需要等待MediaOpened事件,火灾,NaturalDuration会后可用。要检查值是否可用,可以使用NaturalDuration.HasTimeSpan属性。

但最好选择与音频和视频文件是工作“Fmod.dll”。这有很多特权与音频文件

+0

你是正确的,感谢的人合作.. :) 我会检查这个DLL出来.. – vexe 2012-08-01 18:02:51

+1

不客气,我已经使用fmod DLL它有很多选项和非常有趣的工作与音频和视频文件,如果你有问题,我会帮你。 – KF2 2012-08-01 18:04:54