Wie stelle ich fest, ob MediaElement abgespielt wird?
Scheint einfach genug, aber ich kann nicht herausfinden, jede Möglichkeit zu bestimmen, was der Staat von einem MediaElement ist. Es gibt verschiedene Eigenschaften, die für einige Staaten (wie IsBuffering), aber ich finde keine für Staaten wie Play, Pause, etc. Silverlight scheint ein CurrentState-Eigenschaft, die zeigt, dass all diese.
Derzeit der Weg, ich bin die Bestimmung, ob ein video sein soll, ist das spielen gerade für verschiedene Veranstaltungen und einen timer, der überprüft, um zu sehen, ob Fortschritte gemacht werden.
Ich bin neu mit Zeitsteuerung und WPF (ich bin eigentlich nur mithilfe der MediaElement in einer WinForms app). Gibt es etwas, was ich bin fehlt?
InformationsquelleAutor der Frage Brian | 2010-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht etwas fehlt. Sie haben ziemlich viel manuell zu verfolgen, ob oder nicht, die Medien spielen. Es ist schade, da es so einfach in Silverlight, wie Sie erwähnen. Scheint wie eine große Aufsicht für mich.
InformationsquelleAutor der Antwort PeterL
Erhalten Sie auf der
_currentState
Mitglied mit der spiegelung.Diese umfasst die Wiedergabe - /pause -, aber nicht ändern von 'play' , 'stop', wenn es fertig ist.
Können Sie umgehen dies, indem Sie einen Ereignis-handler zu
MediaEnded
Ereignis, und die Ausführung des.Stop()
Methode, dadurch ändert sich der status korrekt (kann abgeholt werden nach der Methode oben)InformationsquelleAutor der Antwort Rich S
Was ich Tat, zu "umgehen", dass war Unterklasse MediaPlayer (dies würde die Arbeit für die Zeitsteuerung) und, um meine eigenen Methoden, um zu Spielen/Pause/Stopp. In diesen Methoden, die ich pflegen ein Feld stellt den Wiedergabe-status. Außerdem müssen Sie hook MediaEnded, so dass Sie können ändern Sie den status von 'spielen', um 'gestoppt.'
InformationsquelleAutor der Antwort Academy of Programmer
wenn (YourMediaElementName.CurrentState == MediaElementState.Spielen)
{
diese Bedingung verwenden, um zu überprüfen, ob der Zustand der Wiedergabe oder pause
InformationsquelleAutor der Antwort user3714810
Fand ich eine Lösung, woking auf Universal-Windows-10-Plattform :
InformationsquelleAutor der Antwort Choletski
Für WPF verwenden:
var playing = player.Position < player.NaturalDuration;
InformationsquelleAutor der Antwort Сергей Червонос
Und basiert auf Rich-S eine Erweiterung umgesetzt werden können
InformationsquelleAutor der Antwort gian rondanelli
Für die WPF MediaElement, hier ist die Lösung/workaround benutze ich:
InformationsquelleAutor der Antwort Alex Pigida