アプリでいくつかのオーディオファイル(mp3、wav、.. etc)を使用していSystem.Windows.Media
ます。名前空間のMediaPlayerクラスを使用していましたが、サウンドファイルの長さの計算に問題がありました。フォームは実際には小さなメディアプレーヤー、それはaTrackBar
と通常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
は真実であり、次に進みます。
どうすればこれを修正できますか?オーディオファイルの長さを取得するにはどうすればよいですか?そして、それらは期間とはどういう意味ですか?
どんな助けもいただければ幸いです、ありがとう:)