vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Laufenden MediaPlayer steuern 
Autor: matthes_92
Datum: 09.05.11 14:13

Hallo,
ich würde gerne einen bereits gestarteten Windows Media Player (12) per VB.Net steuern. Das, was ich über Google fand, bezog sich immer darauf, per Code eine neue Instanz des WMP zu erstellen. Wie ich aber einen laufenden WMP ansprechen und steuern kann weiß ich nicht.
Hintergrund: ich will eine kleine Desktop-App schreiben mit der ich den WMP steuern kann und die wichtigsten Infos ablesen kann ohne den WMP anzeigen zu müssen, also zB ID3-Tags des gerade spielenden Lieds usw, da es das ja beim WMP 12 nicht mehr in der Form wie beim WMP 11 gibt.
Danke schonmal,
matthes_92

Beitrag wurde zuletzt am 09.05.11 um 14:14:14 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Laufenden MediaPlayer steuern 
Autor: matthes_92
Datum: 09.05.11 17:55

So, mal ein kleines Update:
Steuern ist jetzt kein Problem, man sendet einfach per SendMessage einen WM_COMMAND mit bestimmten wParams, zB entspricht &H4978 dem Play/Pause-Button. Allerdings fehlt mir immer noch die Möglichkeit, Infos aus dem WMP auszulesen (Wiedergabestatus, aktueller Titel...). Kennt da vll jemand eine Lösung?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Laufenden MediaPlayer steuern 
Autor: Code_mancer
Datum: 10.05.11 15:12

Schau dir das mal an:

http://msdn.microsoft.com/de-de/library/dd563069.aspx

Gerade sowas in diese Richtung klingt nach dem was du suchst:

http://msdn.microsoft.com/de-de/library/dd564737.aspx

Hoffentlich hilfts

--------------------

Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig.
- Albert Einstein

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Laufenden MediaPlayer steuern 
Autor: matthes_92
Datum: 10.05.11 15:46

Danke für die Links!
Mit der WMPLib hab ich auch schon ein bisschen rumgespielt, allerdings hab ich da wieder das Problem, nicht auf einen vom Benutzer gestarteten WMP zugreifen zu können, sondern nur auf meinen eigenen MediaPlayer im Programm. Allerdings bin ich gerade zufällig über die wmpuice.dll gestolpert (C:\Windows\system32). Die ist eigentlich genau das was ich brauche.

Dim wmp = New wmpuiceLib.WMPApp
Dim player = wmp.Core
MsgBox(player.playstate)
Damit kann ich zumindest schon mal den Wiedergabestatus abfragen. Mehr Member von wmp.Core kenn ich aber leider nicht. Gibt es da ein Programm dass mir IntelliSense-like die Member auflistet?

Sry wenn die Fragestellung jetzt etwas anders ist als in der Überschrift...

Mfg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Laufenden MediaPlayer steuern 
Autor: matthes_92
Datum: 14.05.11 17:28

So, ich bins nochmal ;)
Habs jetzt hingekriegt, für die die es auch mal irgendwann brauchen hab ich hier mal den Code auskommentiert:
Public Class Form1
    Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal _
      hWnd As IntPtr, ByVal Msg As IntPtr, ByVal wParam As IntPtr, ByVal lParam _
      As IntPtr) As IntPtr
    Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal _
    lpClassName As String, ByVal lpWindowName As String) As IntPtr
 
    Const WMP_PLAYPAUSE As Long = &H4978
    Const WMP_STOP As Long = &H4979
    Const WMP_NEXT As Long = &H497B
    Const WMP_PREV As Long = &H497A
    Const WMP_PLAYSPEED1 As Long = &H4994
    Const WMP_PLAYSPEED2 As Long = &H4993
    Const WMP_PLAYSPEED3 As Long = &H4992
    Const WMP_RANDOM As Long = &H499A
    Const WMP_REPEAT As Long = &H499B
    Const WMP_VOLUP As Long = &H497F
    Const WMP_VOLDOWN As Long = &H4980
    Const WMP_MUTE As Long = &H4981
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        '### Methode mit SendMessage
        'Dim handle As IntPtr = FindWindow("WMPlayerApp", "Windows Media" & _
          "Player")
        'SendMessage(handle, &H111, WMP_PLAYSPEED2, &H0)
        '###
        Dim wmp = New wmpuiceLib.WMPApp
        Dim player = wmp.Core
        MsgBox(wmp.Running)                         'WMP gestartet?
        player.controls.play()                      'Play-Befehl
        MsgBox(player.playstate)                    'Wiedergabestatus (0 = ?, 1 
        ' = Gestoppt, 2 = Pausiert, 3 = Wiedergabe)
        MsgBox(player.CurrentPlaylist.Name)         'Name der aktuellen 
        ' Wiedergabeliste
        For i = 0 To player.CurrentPlaylist.Count - 1
            ListBox1.Items.Add(player.currentPlaylist.item(i).name.ToString)
        Next
        Dim track = player.CurrentMedia             'Liefert das aktuelle Lied 
        ' als Object
        MsgBox(track.Name)                          'Titel
        MsgBox(track.getItemInfo("Author"))         'Interpret
        MsgBox(track.getItemInfo("WM/AlbumTitle"))  'Album
        MsgBox(track.durationString)                'Dauer des Lieds als String
        MsgBox(track.getItemInfo("WM/Genre"))       'Genre
        MsgBox(track.getItemInfo("WM/Year"))        'Jahr
        MsgBox(track.getItemInfo("Description"))    'Beschreibung (?)
        MsgBox(track.getItemInfo("Bitrate"))        'Bitrate in bit/sec ( 
        ' Umrechnung: Wert / 1000)
        ListBox1.SelectedItem = track.Name
        TrackBar1.Maximum = track.Duration
        Timer1.Start()
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Timer1.Tick
        Dim wmp = New wmpuiceLib.WMPApp
        Dim player = wmp.Core
        Dim pos = player.controls.currentPosition   'Aktuelle Position in 
        ' Sekunden (Double)
        TrackBar1.Value = CInt(pos)
        Label1.Text = player.controls.currentPositionString
    End Sub
 
    Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles TrackBar1.Scroll
        Dim wmp = New wmpuiceLib.WMPApp
        Dim player = wmp.Core
        player.controls.currentPosition = TrackBar1.Value
    End Sub
 
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
        Dim wmp = New wmpuiceLib.WMPApp
        Dim player = wmp.Core
        player.controls.PlayItem(player.currentPlaylist.item( _
          ListBox1.SelectedIndex))
    End Sub
End Class
Die Konstanten hab ich nur noch mal dabeigelassen falls jemand mit SendMessage arbeitet ;)
lg, matthes
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Laufenden MediaPlayer steuern 
Autor: Volker Bunge
Datum: 13.04.18 20:05

Hallo zusammen,

bin auch gerade dabei, mit dem WMP - Controll eine Anwendung zu schreiben.

Haben WMP 12.0.7601.23517 installiert und das Control AxWMPLib.AxWindowsMediaPlayer installiert und auch eingebunden. Filme und Musik kann ich auch schon abspielen, sogar die Lautstärke über eine HScrollbar steuern.

Jetzt will ich aber noch mit eigenen Controls speziel die Position in einem Video / Musik ansteuern.

Kurz gesagt: Wo bekomme ich die o. g. wmpuice.dll legal her? Die Seiten im Internet wollen immer eine extra Software installieren, mit der man die DLL downloaden kann. Klappt leider aktuell nicht.

Kann evtl. von Euch jemand diese hier einstellen oder mit zusenden?

Vielen Dank

Volker

P.S.: Arbeite mit Visual Basic 2010 Express, Win 7 32Bit
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Laufenden MediaPlayer steuern 
Autor: visualfx
Datum: 14.04.18 21:52

Hallo Volker,

die Wmpuice.dll gibt es nicht mehr, die Postings hierzu sind auch schon aus dem Jahr 2011 !!!

Um den Media-Player zu steuern gibt es aber Windows-eigene DLLs: Wmp.dll bzw. Wmp*.dll

- die DLLs liegen im System-Ordner von Windows

- bei Windows 7 32 Bit also in: C:\Windows\System

Gruß, Stefan

Beitrag wurde zuletzt am 14.04.18 um 21:58:05 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel