Anzeigedauer des Bildes nicht wie gewünscht

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Anzeigedauer des Bildes nicht wie gewünscht

    Hallo,

    ich habe ein kleines Problem. Und zwar habe ich einen Code geschrieben, der mir aus einem DataGridView Pfade von Bildern ausliest. Diese Bilder sollen dann über den AxWindowsMediaPlayer (Ja, es muss dieser sein - die PictureBox funktioniert nicht) angezeigt werden.

    In dem DGV ist auch eine Spalte für die Duration angelegt. In der soll man eintragen können, wie lange das Bild gezeigt werden soll. Ich habe für die Anzeigedauer nun einen Code geschrieben, der es ermöglicht, dass der AWMP das Bild länger als 5 Sekunden anzeigt.

    Es ist nur so, dass das erste Bild immer nur kurz angezeigt wird, und nicht nach der gewünschten Zeit, wie ich es vorgesehen habe.

    Wo habe ich da einen Fehler gemacht? Ich komme da nicht weiter:


    VB.NET-Quellcode

    1. Private Sub Bildausgabe()
    2. If SzenenBindingSource.Count > 0 Then
    3. TimerPause.Enabled = False
    4. pfad = Me.DataGridView1.Item(0, i).Value
    5. dur = Me.DataGridView1.Item(1, i).Value
    6. AxWindowsMediaPlayer1.uiMode = "none"
    7. AxWindowsMediaPlayer1.URL = pfad
    8. Dim extension As New IO.FileInfo(pfad)
    9. Dim ext
    10. ext = extension.Extension
    11. If ext = ".jpg" Then
    12. TimerPause.Enabled = True
    13. End If
    14. AxWindowsMediaPlayer1.Ctlcontrols.play()
    15. End If
    16. End Sub
    17. Private Sub naechstes_Bild()
    18. i = i + 1
    19. Dim imax
    20. imax = SzenenBindingSource.Count
    21. If i >= imax Then
    22. i = imax
    23. Else
    24. Bildausgabe()
    25. End If
    26. If i + 1 = SzenenBindingSource.Count Then
    27. i = i - imax
    28. End If
    29. End Sub
    30. Private Sub vorheriges_Bild()
    31. i = i - 1
    32. If i <= -1 Then
    33. i = 0
    34. Else
    35. Bildausgabe()
    36. End If
    37. End Sub
    38. Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
    39. If Timer.Enabled = True Then
    40. Timer.Interval = dur * 1000
    41. naechstes_Bild()
    42. End If
    43. End Sub
    44. Private Sub TimerPause_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TimerPause.Tick
    45. AxWindowsMediaPlayer1.Ctlcontrols.pause()
    46. TimerPause.Enabled = False
    47. End Sub
    In der If-Schleife?

    VB.NET-Quellcode

    1. If ext = ".jpg" Then
    2. TimerPause.Enabled = True
    3. End If


    Oder vor dem

    VB.NET-Quellcode

    1. Timer.Interval = dur * 1000
    ?

    Ich versuche beides mal!

    e-Dit: Funktioniert beides nicht - das erste Bild (Mit 11 Sekunden definiert) wird nur 1.5 Sekunden angezeigt.

    cmediapro schrieb:

    VB.NET-Quellcode

    1. If Timer.Enabled = True Then
    macht in der Timer_Tick-Prozedur auch keinen Sinn, den wenn Timer.Enabled = False ist, wird gar kein Event ausgelöst.
    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!