Windows Media Player Control Titel wird wiederholt bzw. gar nicht abgespielt

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Wenn Du es probierst, versuch auch mal den bei mir beliebten Delay-Workaround. Er gibt dem GUI-/Mainthread Zeit noch ein paar Dinge zu erledigen, bevor es sich der eigentlichen Aufgabe (wieder) widmet:

    VB.NET-Quellcode

    1. Private Async Sub DeineVerarbeitungsprozedur
    2. 'hier ggf. Vorbereitungscode
    3. Await Threading.Tasks.Task.Delay(1) 'ggf. einen Wert > 1 probieren
    4. 'hier der Code, der mit minimaler Verzögerung ausgeführt werden soll
    5. End Sub
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    kafffee schrieb:

    Die Autostart-Eigenschaft des Controls
    ist jetzt genau was?
    Die Idee mit dem Timer ist mit auch gekommen. Gib ihm ein Interrvall von 500 Millisekunden und stoppe ihn sofort im Tick-Event, das bedeutet, dass er nur einen Tick macht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Möglicherweise genügt es, wenn Du im Eventhandler vor Aufruf der Abspiel-Routine einfach Player.play() aufrufst, das wäre dann allerdings ein Arbeitsdrumherum.

    Hab ich probiert, dann wird zwar abgespielt, aber bei Aufruf von Abspielen() natürlich dann die Wiedergabe pausiert...

    RodFromGermany schrieb:

    ist jetzt genau was?

    Im Entwurfsmodus Rechtsklick auf das WMP-Control, Klick auf Eigenschaften, dann ein Häkchen bei "Automatisch starten" unter "Wiedergabeoptionen" setzen... Leider lässt sich das zur Laufzeit nicht ändern, bzw. auch nicht im Eigenschaften-"Explorer" oder wie du es nennen magst...

    @VaporiZed
    Funktioniert 8o Tausend Dank :) :)
    Sehe ich das richtig, durch das Schlüsselwort Async wie die Prozedur in einem separaten Thread ausgeführt, und das Await Threading.Tasks.Task.Delay(1) wartet dann, bis dieser Thread beendet wird??
    Fast. Beim Erreichen der Await-Zeile wird aufgespalten. Der Mainthread bricht erstmal mit der Prozedur ab und kümmert sich wieder um seinen Kram. Nebenläufig (ggf. in einem 2. Thread) wird auf den Teil nach Await (also auf Threading.Tasks.Task.Delay(1)) gewartet, bis der fertig ist. Danach wird dem Mainthread bescheid gegeben, dass er sich um den Kram nach der Await-Zeile kümmern soll. Also läuft nur die Await-Zeile nebenläufig ab, das davor und danach im Mainthread.
    Schaust Du hier: Async/Await
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nope, für die Anzahl der Millisekunden. Aber das hätte Dir IntelliSense auch sagen können.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.