Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
544to548
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
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Sounddatei abspielen über VBA
13.01.2005 09:48:36
Michi
Hallo VBA-Profis,
ich möchte eine wav-Datei über einen VBA-Code abspielen. Das funktioniert auch über die API-Funktion wunderbar. Mein Problem ist aber, dass nicht alle wav-Dateien gehen. Ich hab z.B. eine mp3-Datei umgewandelt und die geht dann nicht. Liegt das evtl. an der Dateigröße (hat dann über 40MB) oder gibt es sonst eine andere Möglichkeit, eine mp3-Datei abzuspielen? Und eine zweite Frage wäre, ob es auch möglich ist, ein Video (z.B. ...avi) über VBA zu starten.
Vielen Dank für Eure Unterstützung
Michi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sounddatei abspielen über VBA
15.01.2005 09:00:58
Nepumuk
Hallo Michi,
MP3-Files kannst du nur über einen Plaver abspielen. Nach dem selben Prinzip kannst du natürlich auch Videofiles ansehen. Hier ein Beispiel für den Mediaplayer:


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongByVal lpOperation As StringByVal lpFile As StringByVal lpParameters As StringByVal lpDirectory As StringByVal lpnShowCmd As LongAs Long
Public Sub test()
    ShellExecute 0, "open", "D:\Eigene Dateien\Eigene Präsentationen\Nils.mp3", "", "C:\Programme\Windows Media Player\wmplayer.exe", 1
End Sub


Gruß
Nepumuk
Anzeige
AW: Sounddatei abspielen über VBA
17.01.2005 08:47:44
Michi
Hallo Nepumuk,
vielen Dank für die Antwort. Klappt auch prima, Video sowie Audio. Aber hast Du noch eine Möglichkeit, eine mp3-Datei nur im Hintergrund abzuspielen bzw. den Media Player auszublenden, so dass nicht sichtbar wird, dass der Media Player gestartet wird? Da war die wav-Datei gut, denn hier war's nur im Hintergrund. Weißt Du auch, ob die wav-Dateien von der Datei-Größe beschränkt sind, ich bekomm nämlich eine mit ca. 30 MB?
Und ich hätte noch eine zweite Frage: Ist es möglich, in einer User Form in einem Steuerelement (z.B. Image oder Frame) ein Video zu starten. Das wär schon klasse.
Danke Dir schon mal vorab und Grüße
Michi
Anzeige
AW: Sounddatei abspielen über VBA
18.01.2005 16:22:50
Nepumuk
Hallo Michi,
1. Befindet sich die Datei quartz.dll auf deinem Rechner? Dann geht es ohne Player. Ansonsten geht ausblenden so:


Option Explicit
Private Const SW_MINIMIZE = 6
Private Type POINTAPI
    x As Long
    y As Long
End Type
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Type WINDOWPLACEMENT
    Length As Long
    flags As Long
    showCmd As Long
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECT
End Type
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As StringByVal lpWindowName As StringAs Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub play()
    Dim Player As WindowsMediaPlayer
    Set Player = New WindowsMediaPlayer
    Player.openPlayer ("D:\Eigene Dateien\Eigene Präsentationen\nils.mp3")
    Set Player = Nothing
    Sleep 100 'Wartezeit in Millisekunden eventuell erhöhen!!
    unvisible
End Sub
Private Sub unvisible()
    Dim WinEst As WINDOWPLACEMENT
    Dim Punto As POINTAPI
    Dim rtn As Long
    WinEst.Length = Len(WinEst)
    rtn = GetWindowPlacement(FindWindow(vbNullString, "Windows Media Player"), WinEst)
    If rtn <> 0 Then
        Punto.x = 100
        Punto.y = 100
        WinEst.showCmd = SW_MINIMIZE
        WinEst.ptMinPosition = Punto
        WinEst.ptMaxPosition = Punto
        SetWindowPlacement FindWindow(vbNullString, "Windows Media Player"), WinEst
    End If
End Sub


2. Klar geht das. Rechtsklick in die Werkzeugsammlung - Zusätzliche Steuerelemente. In der Liste findest du den Windows Mediaplayer. Wenn du nur einen einzigen Film laufen lassen willst, dann einfach im Eigenschaftsfenster unter ULR den Pfad & Dateinamen eingeben. Wenn du eine Liste von Filmen anbieten willst, dann kann ich dir ein Beispiel für das Playlist-Objekt (erstellen, Dateien zuordnen, abspielen ...) des Mediaplayers geben.
Gruß
Nepumuk
Anzeige
AW: Sounddatei abspielen über VBA
19.01.2005 10:36:38
Michi
Hallo Nepumuk,
danke für Deine Antwort. Die Datei quartz.dll hab ich auf dem Rechner. Was muss ich dann damit tun, dass es ohne Player geht?
Bei dem anderen hab ich hier Probleme:
"Dim Player As WindowsMediaPlayer
Set Player = New WindowsMediaPlayer"
Bei "Dim Player As " schlägt er keinen WindowsMediaPlayer vor.
Aber wenn es auch anders geht, ist das ja eh hinfällig.
Mille Grazie für Dein Feedback und Deine Hilfe.
Michi
AW: Sounddatei abspielen über VBA
19.01.2005 16:16:11
Nepumuk
Hallo Michi,
das hatte ich vergessen zu schreiben. Du benötigst, für das erste Beispiel mit Player, einen Verweis auf: "Windows Media Player".
Beim folgenden Beispiel ohne Control und Player, benötigst du einen Verweis auf: "ActiveMovie control type library". Der Code dazu ist relativ einfach:


Option Explicit
Public objFgM As FilgraphManager
Public bolPause As Boolean
Public Sub PlayMusic()
    Set objFgM = New FilgraphManager
    objFgM.RenderFile "D:\Eigene Dateien\Eigene Präsentationen\nils.mp3"
    objFgM.Run
    bolPause = False
End Sub
Public Sub PauseMusic()
    If bolPause Then objFgM.Run Else objFgM.pause
    bolPause = Not bolPause
End Sub
Public Sub StopMusic()
    objFgM.Stop
    Set objFgM = Nothing
End Sub


Gruß
Nepumuk
Anzeige

17 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige