2012-08-01 43 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