Status eines Mediaelements: läuft, lädt oder Fehlermeldung

  • WPF

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ThePlexian.

    Status eines Mediaelements: läuft, lädt oder Fehlermeldung

    Hallo Leute

    Ich möchte zu einem Mediaelement, eine Label anzeigen wo der Status steht (lädt, läuft) jedoch funktioniert dies nicht optimal.
    Also wenn ein Stream läuft also MediaElement.HasAudio = True, dann soll dies beim Status angezeigt werden
    Bis jetzt habe ich eine Do-While-Schleife verwendet um den Status zu checken. Und um nach einer gewissen Zeit eine Fehlermeldung auszugeben.
    Das Problem: manche Steams starten erst nach einigen Sekunden, weshalb ich eine Wartezeit eingebunden habe. Diese bewirkt jedoch das die Streams zum Teil weniger schnell starten.

    Gäbe es da noch eine Bessere Möglichkeit ?

    Danke für euer Hilfe

    VB.NET-Quellcode

    1. Private Sub prozedur_Streamstart()
    2. Try
    3. lblStatus.Content = "Status: "
    4. MediaElement1.Source = New Uri(strStream)
    5. MediaElement1.Play()
    6. Sleep(1500)
    7. Dim statuscheck As Integer = 0
    8. Do Until statuscheck > 100
    9. If MediaElement1.HasAudio = True Then
    10. lblStatus.Content = "Status: Stream läuft"
    11. Exit Do
    12. ElseIf MediaElement1.HasAudio = False And statuscheck = 100 Then
    13. MsgBox("Der Stream konnte nicht gestartet werden." & vbCrLf & "Bitte überprüfen Sie Ihre Internetverbindung!", vbOKOnly, "Fehler")
    14. Exit Do
    15. ElseIf MediaElement1.HasAudio = False Then
    16. lblStatus.Content = "Status: Stream lädt"
    17. Sleep(250) 'eine viertel sekunde
    18. End If
    19. statuscheck = statuscheck + 1
    20. Loop
    21. Catch ex As Exception
    22. MsgBox("Klicken Sie auf ein Stream", vbOKOnly, "Hinweis")
    23. End Try
    24. End Sub
    25. 'Zum Statuscheck benötigt
    26. Sub Sleep(ByVal sleeptime As Integer)
    27. Dim Stopw As New Stopwatch
    28. Stopw.Start()
    29. Do Until Stopw.ElapsedMilliseconds >= sleeptime
    30. System.Windows.Forms.Application.DoEvents()
    31. Loop
    32. Stopw.Stop()
    33. Stopw.Reset()
    34. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „outlop“ ()