Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi WMP aktueller Titel? (https://www.delphipraxis.net/79070-wmp-aktueller-titel.html)

EWeiss 6. Jul 2007 21:49

Re: WMP aktueller Titel?
 
Zitat:

Zitat von arne99
Ich glaube hier gibt es grundsaetzlich 2 Themenbereiche:

Wie bekomme ich den Titel aus einer WMP Komponente? Oder wie in meinem Fall:

Wie erhalte ich die Titelinformatioenn aus dem Windows Media Player 9+ ?

gruß aus Hamburg!

Wo ist das problem Installiere das WMP SDK da steht alles drin
was dir das Bild das ich gezeigt habe dokumentiert.

Du brauchst nicht anderes als das comobjekt MediaInfo
die Daten sind immer gleich da sie in der Playliste abgelegt sind.

Dann startest du den Mediaplayer suchst über findWindow dessen Handle
suchst nach den eintrag Playlist und welcher index gerade in WMP aktiviert ist.
diesen mit den eintrag in MediaInfo vergleichen und fertig.

Den Code kann ich dir nicht auch noch schreiben.

gruss

arne99 6. Jul 2007 21:52

Re: WMP aktueller Titel?
 
Nein, sollst ja nicht. Schaff ich dann ja auch noch. Aber diese Infos sind schon fuer mich "Gold" wert.
Also dank dir, wenn ich's gepackt hab findest du alle Diskussionsthemen ueber iTunes, WMP, WinAmp und Amazon der letzten 2 Wochen als Freeware Project hier DP ;) Gruß!

EWeiss 6. Jul 2007 22:01

Re: WMP aktueller Titel?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von arne99
Nein, sollst ja nicht. Schaff ich dann ja auch noch. Aber diese Infos sind schon fuer mich "Gold" wert.
Also dank dir, wenn ich's gepackt hab findest du alle Diskussionsthemen ueber iTunes, WMP, WinAmp und Amazon der letzten 2 Wochen als Freeware Project hier DP ;) Gruß!

Falls du dich etwas mit VB auskennst ...
Kleiner snipped .. hat funktioniert bis WMP10

Das ganze funktioniert dann ohne einbinden der TypeLib einfach über API'S

Die 11 macht ärger.

Code:
Option Explicit

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

Public Function strGetText(lngHwnd As Long) As String
Dim ilngLength As Long
Dim strBuffer As String    
    ilngLength = SendMessageLong(lngHwnd, &HE, 0, 0)  
    strBuffer = String$(ilngLength, 0)  
    SendMessageByString lngHwnd, &HD, ilngLength + 1, strBuffer  
    strGetText = strBuffer
    Exit Function    
    Resume Next
End Function

Public Function getWMPT() As String
Dim stringtxt As String
Dim wmplng As Long

    wmplng = FindWindow("WMPlayerAPP", vbNullString)
    If wmplng = 0 Then
        getWMPT = "WMP is not loaded currently"    
        Else
            stringtxt = strGetText(wmplng)
        If stringtxt = "Windows Media Player" Then
            getWMPT = "No Song is currently being played"
        Else
            stringtxt = wmplng
            getWMPT = Trim$(Left$(stringtxt, InStr(1, stringtxt, " - Windows Media Player")))
        End If
    End If    
    Exit Function  
    Resume Next      
 End Function
gruss

EDIT:
Erklärung:
Das Caption der bis 10 Reihe verändert sich.
Also .. Standartmäßig ist es Windows Media Player
Wenn ein Song spielt dann ändert es sich zu 'Song - Windows Media Player'

Du musst dann nur den String spliten '-' Und hast den aktuellen Titel der gerade spielt.

EDIT2:
Geht auch mit dem 11
Setzt allerdings vorraus das der Player im Minimodus ausgeführt und das Klassische Menü aktiviert ist.
Erst dann ändert sich das Caption vom Player

Achso vergessen!
Das Caption ändert sich 3x mal
1. Album
2. Interpret
3. Titel
Somit hast du also 3 Informationen gleichzeitig (nur beim WMP11)

EWeiss 6. Jul 2007 23:48

Re: WMP aktueller Titel?
 
Hier noch ein Paar andere SendMessagen
um den MediaPlayer von außen zu kontrollieren.

Delphi-Quellcode:
const
WMPlayer_LParam = 0x00000000;
WMPlayer_Play/Pause = 0x00004978;
WMPlayer_Stop = 0x00004979;
WMPlayer_VolumeUp = 0x0000497F;
WMPlayer_VolumeDown = 0x00004980;
WMPlayer_Mute = 0x00004981;
WMPlayer_Backward = 0x0000497a;
WMPlayer_Forward = 0x0000497b;
gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz