2 Stimmen

Wie zeigt man die verstrichene Zeit in einem Medienelement in Silverlight?

Wie kann ich die verstrichene Zeit einer Videodatei anzeigen, die in einem MediaElement-Steuerelement in Silverlight abgespielt wird?

2voto

bendewey Punkte 38830

Es gibt eine Position Eigenschaft auf der MediaElement . Dieses Video und der Quellcode sollten Ihnen dabei helfen http://www.silverlight.net/learn/quickstarts/audioandvideo/

1voto

hamed aj Punkte 1940

Endlich habe ich mein Problem auf diese Weise gelöst: Ich verwende ein Textblock-Steuerelement und binde die Texteigenschaft an die Positionseigenschaft des MediaElement-Steuerelements, dann verwende ich einen IvalueConverter, um die entsprechende Zeit im TextBlock anzuzeigen:

<TextBlock MinWidth="40" Text="{Binding ElementName=myMediaElement, Path=Position, Converter={StaticResource TimeConverterFormatter}}"/>

TimeConverterFormatter ist eine Klasse für konvertieren TimeSpan Wert in kurze Zeit-Format. weil Position Eigenschaft in MediaElement zeigen eine Zeitspanne Wert wie zu "0:00:00:00.0000000" und ich möchte verstrichene Zeit Wert wie zu diesem: "00:00"

public class TimeConverterFormatter : IValueConverter
{
    #region IValueConverter Members
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value.ToString().Length == 16)
            return value.ToString().Substring(3, 2) + ":" + value.ToString().Substring(6, 2);

        return value.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}

1voto

Sheridan Punkte 66623

Ich weiß, dass dies eine alte Frage jetzt ist, aber in WPF können Sie einfach eine normale StringFormat zu tun, was Sie wollen:

<TextBlock Text="{Binding Position, ElementName=myMediaElement, 
    StringFormat={}{0:hh}:{0:mm}, FallbackValue=00:00, Mode=OneWay}" />

Ich konnte nicht herausfinden, ob Sie Stunden und Minuten oder Minuten und Sekunden wollten, daher hier letzteres:

<TextBlock Text="{Binding Position, ElementName=myMediaElement, 
    StringFormat={}{0:mm}:{0:ss}, FallbackValue=00:00, Mode=OneWay}" />

Ich kann allerdings nicht garantieren, dass es in Silverlight funktioniert.

0voto

Andrew Grinder Punkte 575

Ich bin mir bei Silverlight nicht sicher, aber dies sollte funktionieren, um mm:ss anzuzeigen.

lblLength.Content = String.Format("{0:mm}:{0:ss}", mediaElement.Position);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X