Bindung MediaElement, um Schieberegler-position in WPF
Versucht, die Bindung Maximalen Wert des Schiebereglers zu media element mit der Dauer und verbindlich Schiebereglers den aktuellen Wert der position des media-element, aber für einige Gründe, es nicht.
Möchte ich den Schieberegler, um es zu bewegen Daumen, während das video abgespielt wird.
<Slider x:Name="videoSlider" Value="{Binding ElementName=mp3MediaElement, Path=Position}"
ValueChanged="videoSlider_ValueChanged" IsMoveToPointEnabled="True"
Maximum="{Binding ElementName=mp3MediaElement, Path=NaturalDuration}"
AllowDrop="True" DataContext="{Binding ElementName=mp3MediaElement}" />
InformationsquelleAutor HomeMade | 2012-04-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nicht verbindlich.
Ich hatte ein ähnliches Problem und timer verwendet für dieses (Mein code in Silverlight von ihm angenommen zu werden, das gleiche auf WPF):
Ersten Richtung (Film-updates die regler)
Zweiten Richtung (Nutzer updates der Schieberegler)
auf dem Formular ctor oder etwas wie das zu schreiben die folgende Zeile:
und der event handler ist:
es begann zu arbeiten, da habe ich entfernt, die einer anderen Logik: wenn der Benutzer klickt auf den regler, springt es an die Stelle. Können Sie mir sagen, wie du das gelöst?
Schau mein edit
es ruft den handler auf, hält aber einen Wert für eine weniger als eine Sekunde ( ich sehe es zu bewegen, um den angeklickten Punkt), und dann kehrt er zurück, um die aktuelle Wiedergabe-position. Der Ton ist kontinuierlich die ganze Zeit.
Ich vergaß hinzuzufügen, Linie
timeSlider.AddHandler
aber jetzt startet die media-Datei (die Wiedergabe ab dem Anfang bei jedem Klick).InformationsquelleAutor Dor Cohen
Beide Regler Eigenschaften-Wert und Maximum sind vom Typ Double. Sie binden möchten Werte der Typen
TimeSpan
undDuration
entsprechend und das ist, warum die Bindungs-system funktioniert nicht in Ihrem Fall.Können Sie versuchen, einen Konverter zu schreiben, oder zu binden, um
NaturalDuration.TimeSpan.TotalSeconds
Eigenschaft.Hoffe, das hilft.
Übrigens, wenn einige von Ihren Bindungen nicht funktionieren, können Sie überprüfen, verbindliche Fehler in Visual Studio "Output" - Fenster.
InformationsquelleAutor Yurec
Ich hatte das gleiche problem, der regler wurde nicht aktualisiert Benutzeroberfläche der MediaElement..
Ich verbrachte einige Zeit versucht, es zu beheben und ich bin mir nicht sicher, es wird anderen helfen.
Aber Nur für den Fall jemand anderes trifft dieses problem, beachten Sie, dass es eine ScrubbingEnabled Eigentums in der Medien-element, wodurch die Benutzeroberfläche des MediaElement-automatisch sucht das richtige Bild entsprechend der position.
Sehr nützlich, wenn Sie in einen pause-Modus und versuchen, ziehen Sie den Schieberegler.
Nur hinzufügen:
ScrubbingEnabled="True"
im XAML-Code Ihrer MediaElement.InformationsquelleAutor G.Y
Hier ist, was ich am Ende für meinen UWP-app.
Diese Antwort nur Adressen die konkrete Frage; bewegen der Schieberegler in Reaktion auf die Wiedergabe. Es spielt nicht damit umgehen, ändern Sie die video-position in Reaktion auf den Benutzer verschieben Sie den regler.
Zuerst fügen Sie diese:
Dann, wenn das video gestartet wird, starten Sie den timer:
Verwendete ich ein 10 ms-Intervall zu halten, den regler, stetige Bewegung. Einen beliebigen Wert verwenden, den Sie mögen.
Und vergessen Sie nicht zu stoppen, den timer, wenn die Wiedergabe endet:
InformationsquelleAutor koopa