gpt4 book ai didi

excel - 使用 VBA Excel 播放任何音频文件

转载 作者:行者123 更新时间:2023-12-02 23:12:28 25 4
gpt4 key购买 nike

我有一段代码可以读取大多数音频文件(包括 wav、mp3、midi...),但如果路径或文件名中有空格,它将无法工作。
所以我必须恢复到我的其他代码接受它,但只读取 wav 文件......
这是读取所有类型音频的代码:

Option Explicit

Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _
"mciSendStringA" (ByVal lpstrCommand As String, ByVal _
lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _
hwndCallback As Long) As Long

Private sMusicFile As String
Dim Play

Public Sub Sound2(ByVal File$)

sMusicFile = File 'path has been included. Ex. "C:\3rdMan.mp3

Play = mciSendString("play " & sMusicFile, 0&, 0, 0)
If Play <> 0 Then 'this triggers if can't play the file
'Play = mciSendString("'play " & sMusicFile & "'", 0&, 0, 0) 'i tried this aproach, but doesn't seem to work
End If

End Sub


Public Sub StopSound(Optional ByVal FullFile$)
Play = mciSendString("close " & sMusicFile, 0&, 0, 0)
End Sub
非常感谢任何帮助,(我不想使用外部播放器弹出解决方法,也不想停止使用 VBA)

最佳答案

我找到了解决方法,纠正了路径名中的空格(和(编辑)文件名(使用没有空格的文件副本,丑陋但有效(name as 不是一个好的解决方案)):

第一次尝试播放声音后,如果失败,我将当前目录更改为声音目录(暂时):

If Play <> 0 Then 

Dim path$, FileName0$
path = CurDir

If InStr(sMusicFile, ":") > 0 Then ChDrive (Left(sMusicFile, 1))
If InStr(sMusicFile, "\") > 0 Then
ChDir (Left(sMusicFile, InStrRev(sMusicFile, "\") - 1))
FileName0 = Mid(sMusicFile, InStrRev(sMusicFile, "\") + 1)
If InStr(FileName0, " ") > 0 Then
FileCopy FileName0, Replace(FileName0, " ", "")
sMusicFile = Left(sMusicFile, InStrRev(sMusicFile, "\")) & Replace(FileName0, " ", "")
Play = mciSendString("play " & Replace(FileName0, " ", ""), 0&, 0, 0)
Else
Play = mciSendString("play " & FileName0, 0&, 0, 0)
End If
Else
FileName0 = Replace(sMusicFile, " ", "")
If sMusicFile <> FileName0 Then
FileCopy sMusicFile, FileName0
sMusicFile = FileName0
End If
Play = mciSendString("play " & sMusicFile, 0&, 0, 0)
End If

ChDrive (Left(path, 1))
ChDir (Left(path, InStrRev(path, "\") - 1))

End If

注意:对于名称中的空格,我还有一个新方法: Filecopy sMusicFile replace(sMusicFile," ","%")然后播放这个新文件

关于excel - 使用 VBA Excel 播放任何音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com