Hallo,
git es eine Möglichkeit nach einer bestimmten Bedingung einen Sound abzuspielen?
Beispielsweise in der Art:
Code:
=@WENN(LÄNGE(A2)<>13;AbspielenMP3();"")
Danke
Hola,
verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.
Gruß,
steve1da
Hallo human,
einfaches Beispiel spezielles Abspielen einer MP3-Datei.
Code:
Option Explicit
Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" ( _
ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As LongPtr) As Long
Private Declare PtrSafe Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" ( _
ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub PlayMyMP3(sFile As String)
' Spielt ein MP3-File ab
Dim iOldPos As Long
Dim sBuffer As String * 255, sPos As String * 256
If GetShortPathName(sFile, sBuffer, LenB(sBuffer)) <> 0 Then _
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
' MCI öffnen
If Dir$(sFile) <> "" Then
If mciSendString("open " & Chr$(34) & sFile & Chr$(34) & " type MPEGVideo alias MyMP3", 0, 0, 0) = 0 Then
' MP3 abspielen
mciSendString "play MyMP3", 0, 0, 0
Do
Sleep 200: DoEvents
mciSendString "status MyMP3 position", sPos, Len(sPos), 0&
If Val(sPos) = iOldPos Then Exit Do
iOldPos = Val(sPos)
Loop
' MP3 schließen
mciSendString "close MyMP3", 0, 0, 0
End If
Else
MsgBox "Die MP3-Datei '" & sFile & "' wurde nicht gefunden!", vbCritical, "MP3 abspielen"
End If
End Sub
Sub AbspielenMP3()
PlayMyMP3 "D:\IRD\Black Night.mp3"
End Sub
_________
viele Grüße
Karl-Heinz
Hallöchen,
Du musst dann das Sub noch umbenennen in
Public Function AbspielenMP3()
Allerdings rechnet die Funktion so lange, wie die MP3 läuft. Nimm also nicht In A Gadda Davida von Iron Butterfly oder Echoes von Pink Floyd
Solltest Du etwas längeres abspielen wollen würde ich eine Titelliste erzeugen und mit der shell an den Mediaplayer übergeben oder etwas in der art. Siehe dazu auch mein Beispiel
Excel-MP3-Lister-Player-Playlist
Hallo zusammen,
hier zur Ergänzung mal noch folgender Tipp:
Man kann mit dem mciSendString auch gezielt Ausschnitte aus längeren Songs abspielen. Anfang und Ende millsekundengenau setzen.
Mit o.g. Code kann leicht ein Stopp erreicht werden (Muss man halt vorher irgendwie abstoppen und sich merken):
If Val(sPos) >= 3000 Then Exit Do
Gruß Karl-Heinz