2010-11-27 14 views
2

Ich versuche, die Länge einer Audio-Datei mit diesem Code zu erhalten:Get Tondatei Länge in C#

MediaElement mysound = new MediaElement(); 
mysound.Source = new Uri(@"D:\majed\Phone\PhoneProject\PhoneProject\Sound\ring1.wav",UriKind.RelativeOrAbsolute); 
double length = mysound.NaturalDuration.TimeSpan.Seconds; 

aber ich erhalte eine Ausnahme, die sagt: „mysound.NaturalDuration.TimeSpan.Seconds null ist“

Was kann ich tun?

Hinweis: Ich möchte nicht (Play) oder (Open) -Methode verwenden.

Danke alle

+1

Probieren Sie TotalSecond eines TimeSpan – Kugel

+0

Haben Sie diesen Beitrag auf SO überprüft ... http: //stackoverflow.com/questions/82319/how-can-i-determine-the-length-of-a-wav- Datei-in-c –

Antwort

0

Nach MSDN,

NaturalDuration ist nicht korrekt, bis die MediaOpened Ereignis ausgelöst wurde.

Media erbt von System.Windows.UIElement und ist im Systems.Windows.Controls Namespace. Laut Konvention ist es sinnvoll, dass ein Media Player bestimmte Mediendetails einer Datei nicht kennt, bis die Datei geöffnet wird. Wenn Sie nur die Länge einer Song-Datei suchen, können Sie unter this nachschauen. Zugegeben, es gilt für MP3-Dateien, aber vielleicht kann es Sie in die richtige Richtung bringen.