VBmcisendstring的问题,音乐就是没办法播放!

这是问题的源代码:PrivateDeclareFunctionmciSendStringLib"winmm.dll"Alias"mciSendStringA"(ByVal... 这是问题的源代码:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub Command1_Click()
FileName = App.Path & "\1.mp3"
mciSendString "close music", 0, 0, 0
mciSendString "open " & FileName & " alias music", 0, 0, 0
mciSendString "play music", 0, 0, 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciSendString "close music", 0, 0, 0
End Sub

这个播放不了,但是如果是这个就播放得了
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub Command1_Click()
FileName = "c:\1.mp3"
mciSendString "close music", 0, 0, 0
mciSendString "open " & FileName & " alias music", 0, 0, 0
mciSendString "play music", 0, 0, 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciSendString "close music", 0, 0, 0
End Sub
请各位大侠多多帮助啊,在此谢过!!!!
展开
 我来答
闪星2
2013-02-14 · TA获得超过3006个赞
知道大有可为答主
回答量:2898
采纳率:58%
帮助的人:1013万
展开全部
目测这两段代码只有第五行不同,如果上面那段代码播放不了,而下面的代码可以播放就说明是这里出问题了。第五行代码前面都是同样的变量,自然不会是这里出问题,那么剩下的就是后面的路径了。我测试了你这两段代码,都是可以播放的,至于你说第一段播放不了,咱回头再看看第一段的代码:
FileName = App.Path & "\1.mp3",这段表明要播放的文件在软件目录下,请问你调试的时候保存工程了吗?1.mp3是在软件目录下吗?
如果你解决以上两个问题,相信一定可以播放的!希望可以帮到你,满意请采纳,有问题请追问!
追问
这个我知道,每次调试程序我都是编译出来之后放在都桌面上弄得
追答
放在都桌面上弄得?你是直接复制软件到桌面还是生成快捷方式之后复制快捷方式到桌面?如果是前者的话你要在桌面上放一个1.mp3文件才可以,或者的话你要在软件目录下放一个1.mp3文件。

希望可以帮到你,满意请采纳,有问题请追问!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
meizhen16
2013-02-14 · TA获得超过110个赞
知道答主
回答量:74
采纳率:0%
帮助的人:58.4万
展开全部
这个函数我可研究了一通宵才弄明白呢,使用时一定要注意:
文件路径名要使用短文件名
即C:\Program Files\a12345678.mp3要写成 C:\Progra~1\a12345~1.mp3
手机打的,长文件名转短文件名的代码就不贴了,自己度一下吧。
爪机累啊,分给我吧兄弟。
追问
兄弟!问题就在这呢!谢谢啊!额,不过,有解决办法没???分我是一定会给你的
追答
文件名不能太长,不能包含空格,不能包含中文,所以要转换成DOS下所使用的短文件名。
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
'
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long'长文件名转达短文件名用的
'
Private Sub Command1_Click()
FileName = App.Path & "\1.mp3"
'增加的部分,对FileName处理{
Dim B1 As String, n As Long
B1 = String(255, 0)
n = GetShortPathName(FileName, B1, 255)
FileName = Left(B1, n)
'}增加的部分,对FileName处理
mciSendString "close music", 0, 0, 0
mciSendString "open " & FileName & " alias music", 0, 0, 0
mciSendString "play music", 0, 0, 0
End Sub
'
Private Sub Form_Unload(Cancel As Integer)
mciSendString "close music", 0, 0, 0
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hnxn01
2019-11-08
知道答主
回答量:4
采纳率:0%
帮助的人:2581
展开全部
问题出在:FileName = App.Path & "\1.mp3"
修改:
If Right$(App.Path, 1) <> "\" Then
FileName = App.Path & "\1.mp3"
else
FileName = App.Path & "1.mp3"
end if
原因在于根目录带"\"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2013-02-14 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5368万
展开全部
留个QQ我帮你远程看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-14
展开全部
为何不试试,看是不是你的音响的问题啊。
追问
你雷死我了,我是一边用QQ音乐听着,一边写的…………
追答
哦哦,原来如此,可是为什么会出现这样的问题呢。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式