Mediaplayer mit Directx

  • VB.NET

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

    Mediaplayer mit Directx

    Hallo ich bin momentan an einem Mediaplayer mit Directx am programmieren.
    Er hat bereits alle Funktionen die wichtig sind für einen Player,
    außer das ich bei der Pause-Funktion das Problem habe,
    die Musik-Datei an der pausierenden Stelle wieder weiterspielen zu lassen,
    und das vorspulen mit einer TrackBar ( zu dieser ich noch absolut keine Ahnung habe ?( ).

    Hierzu habe ich mir sobald der Playbutton gedrückt wird die Länge der in dem Fall MP3-Datei in eine globale Variable gespeichert.

    VB.NET-Quellcode

    1. gsLaenge = TimeSpan.FromSeconds(m_Audio.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(m_Audio.Duration).Seconds)


    Sobald nun der Pausebutton gedrückt wird merke ich mir den Punkt an dem die Datei pausiert und schreibe dies ebenfalls in eine globale Variable.
    Auch wird ein globaler boolean auf True gesetzt.

    Hier einmal Pause

    VB.NET-Quellcode

    1. Private Sub cmdPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPause.Click
    2. gsAktuellePos = TimeSpan.FromSeconds(m_Audio.CurrentPosition).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(m_Audio.CurrentPosition).Seconds)
    3. m_Audio.Pause()
    4. cmdPlay.Text = ">"
    5. gbEsWarPause = True
    6. End Sub


    Und hier Play

    VB.NET-Quellcode

    1. Public Function Play()
    2. Dim fi As System.IO.FileInfo
    3. Dim finfo As New IO.DirectoryInfo(gsSuchePfad)
    4. Dim sDateiname As String
    5. If gbEsWarPause = False Then
    6. For Each fi In finfo.GetFiles
    7. sDateiname = fi.Name
    8. If Right(sDateiname, 4) = ".mp3" And sDateiname = mFunc.GetSelectedFile Then
    9. If Form1.cmdPlay.Text = ">" Then
    10. ' Start playing.
    11. Form1.cmdPlay.Text = "[]"
    12. m_Audio = New DX.Audio(gsSuchePfad & "\" & gsAusgwFile)
    13. gsLaenge = TimeSpan.FromSeconds(m_Audio.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(m_Audio.Duration).Seconds)
    14. Form1.lblLaenge.Text = gsLaenge
    15. m_Audio.Play()
    16. m_StartTime = Now
    17. Form1.Timer1.Enabled = True
    18. Else
    19. ' Stop playing.
    20. Form1.cmdPlay.Text = ">"
    21. m_Audio.Stop()
    22. m_Audio.Dispose()
    23. m_Audio = Nothing
    24. Form1.Timer1.Enabled = False
    25. Form1.lblTest.Text = ""
    26. End If
    27. End If
    28. Next
    29. Else
    30. For Each fi In finfo.GetFiles
    31. sDateiname = fi.Name
    32. If Right(sDateiname, 4) = ".mp3" And sDateiname = mFunc.GetSelectedFile Then
    33. If Form1.cmdPlay.Text = ">" Then
    34. ' Start playing.
    35. Form1.cmdPlay.Text = "[]"
    36. m_Audio = New DX.Audio(gsSuchePfad & "\" & gsAusgwFile)
    37. gsLaenge = TimeSpan.FromSeconds(m_Audio.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(m_Audio.Duration).Seconds)
    38. Form1.lblLaenge.Text = gsLaenge
    39. m_Audio.Play()
    40. m_StartTime = Now
    41. Form1.Timer1.Enabled = True
    42. End If
    43. End If
    44. Next
    45. End If
    46. End Function



    Wäre stark wenn es einige Ideen zum Punkt Pausieren und Weiterspielen sowie zum Vorspulen geben würde. :thumbsup:

    Gruß TheB


    VB-Tag eingefügt
    -Artentus

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „TheB“ ()