Anzeige
Archiv - Navigation
1340to1344
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MediaPlayer via VBA sequenziell ansteuern

MediaPlayer via VBA sequenziell ansteuern
14.12.2013 12:11:17
DietmarU
Hallo VBA-Freunde,
über eine Excel-Tabelle, in der mein kompletter MP3-Bestand (Pfade, Dateinamen, ID3-Tag) enthalten ist, möchte ich über VBA die zuvor von Hand gefilterte und gekennzeichnete Song-Auswahl durchgehend hintereinander -ohne weiteren Eingriff- abspielen. Dies habe ich mir ausgedacht, da keine Medienbibliothek mir ausreichende und komfortable Filtermöglichkeiten bietet (Beispiel: alle Songs von 1980 bis 1989 mit vier oder fünf Sternen bei denen im Titeltext "You" enthalten ist).
Meine bisherigen Recherchen erlauben nur das Abspielen einer einzelnen Auswahl.
Mit meinem beigefügten Code werden alle Songs zum Media-Player geschickt. Da das Ende des laufenden Songs nicht abgewartet wird, startet schon der Nächste. Das geht bis zum letzten Song so, der dann von Anfang bis Ende läuft.
Als möglichen Lösungsansatz stelle ich mir vor
- Eine Steuerung des MediaPlayers zu nutzen, die das Problem regelt.
- Den Returncode "Song ist vom MediaPlayer abgespielt" abzufragen und erst dann den nächsten Song wegzuschicken.
- Eine Playliste zu erzeugen und an den MediaPlayer zu senden.
Zur Umsetzung dieser Lösungen fehlt mir jedoch leider das nötige Wissen.
Wer kann hier der Weihnachtsmann sein?
Grüße
Dietmar
Sub Play_Click()
'*********************************************************************************************** _
'*** In dem Sheet "MP3-Bibliothek" sind in der Spalte "G" die Songs zum abspielen mit "p", "P"  _
oder "Play" gekennzeichnet.        ***
'*** Andere Kennzeichnungen sind individuell Bemerkungen und bleiben unberücksichtigt bzw. fü _
hren nicht zum Abspielen des Songs.  ***
'*********************************************************************************************** _
'***************************************************************************************** _
_
'*** Variablendefinitionen                                                                 _
_
'***************************************************************************************** _
_
'*** MP3_TABELLE:       In diese programminterne Tebelle werden alle zum abspielen  _
gekennzeichneten MP3-Songs gespeichert   ***
'*** ANZAHL:            enthält die Anzahl der zum abspielen gekennzeichneten MP3-Songs    _
_
'*** MAX_ANZAHL:        Anzahl der Zeilen im Sheet "MP3-Bibliothek"                        _
_
'*** VERZEICHNIS:       Hauptverzeichnis, aus der die MP3-Bibliothek mit allen  _
Unterverzeichnissen erstellt wird            ***
'*** UNTERVERZEICHNIS:  verschiedene Unterverzeichnisse zum Hauptverzeichnis und deren  _
Unterverzeichnisse,                  ***
'***                    z.B. verschiedene Interpreten, Alben                               _
_
'*** I:                 Laufvariable
'***************************************************************************************** _
_
Dim MP3_TABELLE(), I, ANZAHL, MAX_ANZAHL, VERZEICHNIS, UNTERVERZEICHNIS
'***** *********************************************************************************** _
_
'*** Festlegen MAX_ANZAHL (Anzahl der Zeilen im Sheet "MP3-Bibliothek")                    _
_
'*** Festlegen VERZEICHNIS (einmalig aus dem Sheet "MP3-Bibliothek") mit bedarfsweiser  _
Ergänzung um "\"                     ***
'***************************************************************************************** _
_
MAX_ANZAHL = Cells(Rows.Count, 3).End(xlUp).Row
VERZEICHNIS = IIf(Right(Cells(2, 2), 1) = "\", Cells(2, 2), Cells(2, 2) & "\")
'***************************************************************************************** _
_
'*** Füllen der MP3_TABELLE mit dem kompletten Laufwerk-,Verzeichnis- und Dateinamen für   _
_
die gekennzeichneten Songs         ***
'***************************************************************************************** _
_
For I = 3 To MAX_ANZAHL
If UCase(Cells(I, 7)) = "P" Or UCase(Cells(I, 7)) = "PLAY" Then
ANZAHL = ANZAHL + 1: UNTERVERZEICHNIS = Mid(Cells(I, 2), InStr(Cells(I, 2), "\ _
_
") + 1)
UNTERVERZEICHNIS = IIf(Right(UNTERVERZEICHNIS, 1) = "\", UNTERVERZEICHNIS,  _
UNTERVERZEICHNIS & "\")
ReDim Preserve MP3_TABELLE(ANZAHL): MP3_TABELLE(ANZAHL) = VERZEICHNIS &  _
UNTERVERZEICHNIS & Cells(I, 3)
End If
Next
'***************************************************************************************** _
_
'*** Aufruf des Windows-Media-Player unter der abzuspielenden Songadresse                  _
_
'***************************************************************************************** _
_
For I = 1 To ANZAHL
Shell "C:\Programme\Windows Media Player\wmplayer.exe """ & MP3_TABELLE(I) & """",   _
_
vbMaximizedFocus
Next
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MediaPlayer via VBA sequenziell ansteuern
14.12.2013 14:04:29
mumpel
Hallo!
Versuch es mit einer Userform. In dieser kannst Du das Mediaplayer-Control ("Windows Media Player", wmp.dll). Kannst Du in die Werkezugleiste einfügen. Allerdings weiss ich nicht wie Du eine Liste aus Deiner Excel-Tabelle an das Mediaplay-Control schicken kannst. Vielleicht hilft Dir Google dabei.
Gruß, René

MediaPlayer via VBA sequenziell ansteuern
14.12.2013 17:33:42
Anton
Hallo Dietmar,
vielleicht hilft dir das hier.
mfg Anton

AW: MediaPlayer via VBA sequenziell ansteuern
14.12.2013 18:42:11
DietmarU
Hallo Anton,
sieht vielversprechend aus. Komme leider im Moment nicht dazu, Deinen Vorschlag einzubauen und zu testen. Lasse aber baldigst von mir hören.
Vorab Danke
DietmarU

Anzeige
AW: MediaPlayer via VBA sequenziell ansteuern
14.12.2013 21:38:40
DietmarU
Hallo Anton,
Dein Codierungsvorschlag habe ich bei mir eingebaut: funktioniert und ist genau das, was ich mir vorgestellt habe.
Aber: wie immer in der Entwicklung macht das Erreichte Lust auf mehr. Kannst Du mir erklären was/wie die GetObjekt-Defintion für WMP bedeutet/funktioniert bzw. wo ich hierzu Informationen erhalte. Mit geht es insbesondere darum, den WMP (Lautstärke, Skip u.s.w) visible zu stellen und zu nutzen.
Wichtig: Bei Deiner schnellen und zielführenden Antwort hätte ich mir 14 Tage Rumfummeln sparen können.
Danke und Grüße
Dietmar
Sub Play_Click()
'***************************************************************************************** _
'*** In der "MP3-Bibliothek", Sheet  sind in der Spalte "G" die Songs zum abspielen mit " _
p", "P" oder "Play" gekennzeichnet.***
'*** Andere Kennzeichnungen sind individuell und bleiben unberücksichtigt bzw. führen  _
nicht zum Abspielen des Songs.        ***
'***************************************************************************************** _
'***************************************************************************************** _
'*** Variablendefinitionen                                                                 _
'***************************************************************************************** _
'*** MP3_TABELLE:       In diese programminterne Tebelle werden alle zum abspielen  _
gekennzeichneten MP3-Songs gespeichert   ***
'*** ANZAHL:            enthält die Anzahl der zum abspielen gekennzeichneten MP3-Songs    _
'*** MAX_ANZAHL:        Anzahl der Zeilen im Sheet "MP3-Bibliothek"                        _
'*** VERZEICHNIS:       Hauptverzeichnis, aus der die MP3-Bibliothek mit allen  _
Unterverzeichnissen erstellt wird            ***
'*** UNTERVERZEICHNIS:  verschiedene Unterverzeichnisse zum Hauptverzeichnis und deren  _
Unterverzeichnisse,                  ***
'***                    z.B. verschiedene Interpreten, Alben                               _
'*** WMP:               Objektdefinition MediaPlayer (? kommt von Herber, keine Ahnung)  _
'***************************************************************************************** _
Dim MP3_TABELLE(), I, ANZAHL, MAX_ANZAHL, VERZEICHNIS, Unterverzeichnis, WMP As Object
Set WMP = GetObject("new:{6BF52A52-394A-11d3-B153-00C04F79FAA6}")
'***** *********************************************************************************** _
'*** Festlegen MAX_ANZAHL (Anzahl der Zeilen im Sheet "MP3-Bibliothek")                    _
'*** Festlegen VERZEICHNIS (einmalig aus dem Sheet "MP3-Bibliothek") mit bedarfsweiser  _
Ergänzung um "\"                     ***
'***************************************************************************************** _
MAX_ANZAHL = Cells(Rows.Count, 3).End(xlUp).Row
VERZEICHNIS = IIf(Right(Cells(2, 2), 1) = "\", Cells(2, 2), Cells(2, 2) & "\")
'***************************************************************************************** _
'*** Füllen der MP3_TABELLE mit dem kompletten Laufwerk-,Verzeichnis- und Dateinamen für  _
die gekennzeichneten Songs         ***
'***************************************************************************************** _
For I = 3 To MAX_ANZAHL
If UCase(Cells(I, 7)) = "P" Or UCase(Cells(I, 7)) = "PLAY" Then
ANZAHL = ANZAHL + 1: Unterverzeichnis = Mid(Cells(I, 2), InStr(Cells(I, 2), "\ _
") + 1)
Unterverzeichnis = IIf(Right(Unterverzeichnis, 1) = "\", Unterverzeichnis,  _
Unterverzeichnis & "\")
ReDim Preserve MP3_TABELLE(ANZAHL): MP3_TABELLE(ANZAHL) = VERZEICHNIS &  _
Unterverzeichnis & Cells(I, 3)
End If
Next
'***************************************************************************************** _
'*** Aufruf des Windows-Media-Player unter der abzuspielenden Songsadresse                 _
'***************************************************************************************** _
For I = 1 To ANZAHL
WMP.URL = MP3_TABELLE(I)
Do
DoEvents
Loop Until WMP.playState = 1
WMP.Close
Next
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige