Windows Media Player - Mit Trackbar Vorspulen?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von markus.obi.

    Windows Media Player - Mit Trackbar Vorspulen?

    Hallo,

    ich brauche mal euere Hilfe. Ich habe in Visual Basic 2010 ein Media Player programmiert. Lautstärke, Musik hinzufügen etc. ist bisher kein Problem.
    Nun möchte ich über ein Trackbar die Musik bzw. Video vorspulen.
    Ich habe auch schon Google als Hilfe genommen, aber nichts gutes gefunden.


    Kann mir da einer Weiterhelfen ?

    Bis jetzt sieht es bei mir so aus :

    Quellcode

    1. TrackBar2.Value = AxWindowsMediaPlayer1.Ctlcontrols.currentPosition TrackBar2.Maximum = AxWindowsMediaPlayer1.currentMedia.duration



    ( Diese Codes stehen bei mir im Button-Klick wo sich der OpenfileDialog öffnet)

    Danke schonmal im Vorraus
    So kannst du die position der Currentmedia setzen:

    VB.NET-Quellcode

    1. Private Sub TrackBar2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar2.Scroll
    2. AxWindowsMediaPlayer1.Ctlcontrols.currentPosition = TrackBar2.Value
    3. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Derfuhr“ ()

    Wenn du zuerst ausrechnest wie die Value der Trackbar, im verhältniss zu der Liedlänge ist kannst du einfach.

    In nen Timer oder ka wohin,
    Trackbar1.Value = AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
    machen.


    Edit://
    Aber bitte mach Option Strict auf On.
    Heißt schreib einfach über deinen programmcode (GANZ OBEN)
    Option Strict On
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Ja, das muss man so glaube ich mit nem timer machen, da das Handle AxWindowsMediaPlayer1.PositionChange nur feuert(afaik) wenn die Currentmedia
    Position manuell geändert wird.

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Dim WithEvents trkBar_Update As New Timer
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. AxWindowsMediaPlayer1.URL = "C:\1.mp3"
    6. AxWindowsMediaPlayer1.Ctlcontrols.play()
    7. trkBar_Update.Interval = 1000
    8. trkBar_Update.Start()
    9. End Sub
    10. Private Sub trkBar_Updating() Handles trkBar_Update.Tick
    11. TrackBar1.Maximum = CInt(AxWindowsMediaPlayer1.currentMedia.duration)
    12. TrackBar1.Value = CInt(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition)
    13. End Sub
    14. Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
    15. AxWindowsMediaPlayer1.Ctlcontrols.currentPosition = TrackBar1.Value
    16. End Sub
    17. Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
    18. If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
    19. trkBar_Update.Stop()
    20. End If
    21. End Sub
    22. End Class


    mfG

    Derfuhr
    @Derfuhr
    Ehrlich, findest du es gut direkt Code herzugeben anstatt zu erklären,
    damit er selbst was lernt und nicht nur für den Moment was davon hat?

    Denn so ist es bei dir gerade. Du hilfst ihm zwar jetzt, er hat einmal Code,
    jedoch auf langzeit hilft ihm das ganz und garnicht weiter.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Falls du es nicht wusstest:
    Man kann den AxWindowsMediaPlayer auch als Control auf die Form schmeißen. Dann hat man einen abgespeckten WMP.


    Dann kannste dir das mit der Progressbar sparen. Das Gewurste mit dem Timer ist einfach nur unschön.
    Der AxWindowsMediaPlayer bietet eine funktionstüchtige Scrollbar, wieso sollte man die nicht nutzen?
    Ein eigener "Player" auf Basis des WMP ist kein eigener Player.

    Analog dazu würde auch niemand ernsthaft nen "eigenen" Browser mit dem .NET Webrowser machen.