vb playsound 具体函数如何使用?求详细代码解析

如题如题... 如题如题 展开
 我来答
SQL的艺术
推荐于2017-11-29 · SQL写多了就会在追求极致
SQL的艺术
采纳数:2040 获赞数:3322

向TA提问 私信TA
展开全部
方法很简单。不过首先要声明函数和基本常数
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound

连续播放的语句如下:
PlaySound "The Microsoft Sound.wav", 0, SND_FILENAME Or SND_ASYNC Or SND_LOOP
SND_FILENAME表示第一个参数为文件路径,SND_ASYNC表示异步播放,即马上返回(而不是等播放完毕后才返回),SND_LOOP则表示循环播放。

要停止则用:
PlaySound 0,0,0
因为前面已经定义了播放方式为异步,所以这里只需将所有参数置0即可。

再补充一点:用PlaySound虽然简单,但也有其局限性,如果文件稍大,就不能采用这种方式了。此时需要采用DirectSound,当然其调用方式也复杂一些。
归萱pN
2014-04-13 · TA获得超过989个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1471万
展开全部
Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrRetumString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim soundfile, flag
Function playalarmsound(mp3filename, flag)
    If Dir(mp3filename) <> "" Then
        If flag = 1 Then
            mciSendString "play " & mp3filename & " repeat", vbNullString, 0, 0
        Else
            mciSendString "close " & mp3filename, 0&, 0, 0
        End If
    End If
End Function
Private Sub Command1_Click()
    soundfile = "e:\歌曲\mp3\下雨天..mp3"
    flag = 1 '播放
    playalarmsound soundfile, flag
End Sub

Private Sub Form_Unload(Cancel As Integer)
    playalarmsound soundfile, 0 '停止
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式