打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(引用)VB中使用API函数sndPlaySound
userphoto

2017.10.27 河北

关注

这两天VB着实把我引进去了,千万不要小看这个东西。虽然现在开发工具层次百出,但是vb也有的的长处。容易上手。尤其时钟这一块。特有意思。今天给自己做了一个日程提醒、加载声音的时候就遇到问题了。用wmp太麻烦。容易出错。使用API呢就特简单,而且舒服。
对于函数 sndPlaySound 的不同应用,正确的使用方法如下。

一、声音文件存储在资源文件中,程序运行时,从资源文件中,把声音文件读入变量,再调用sndPlaySound发出声音。不需要把变量保存为临时文件。

定义:
Private Declare Function sndPlaySoundFromMemory Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long

调用方法:
Dim bArr() As Byte
bArr = LoadResData(101, "CUSTOM")
sndPlaySoundFromMemory bArr(0), SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY

二、播放声音文件

定义:
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

调用方法:
sndPlaySound "C:\WINDOWS\MEDIA\TADA.WAV", SND_ASYNC

三、使声音停止

定义:
Private Declare Function sndPlaySoundStop Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As Long, ByVal uFlags As Long) As Long

调用方法:
sndPlaySoundStop 0, SND_SYNC

常数定义:
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_NODEFAULT = &H2
Const SND_MEMORY = &H4
Const SND_LOOP = &H8

' SND_SYNC(=&H0)       同步调用,声音播放完毕   程序才能继续
' SND_ASYNC(=&H1)     非同步调用,不必等声音播放完毕   程序即可继续
' SND_NODEFAULT(=&H2)当声音文件未找到就停止播音返回
' SND_MEMORY(&H4)       播放内存中的声音
' SND_LOOP(=&H8)       声音播放完毕后   从头重复播放   与SND_ASYNC(=&H1)使用
' SND_NOSTOP(=&H10)   如果其他声音正在播放   则不终止该声音的播放,而返回False

本文来自http://hi.baidu.com/liyajx/item/d0190b572720eac09e2667b6

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB - 播放WAV文件
VB教程,VB案例:如何在 VB 中播放声音文件,VB源码,VB代码,VB源码下载,VB实...
MFC中的几种播放声音的方法
delphi 播放声音 采用 异步方式,比较流畅
HOOK (转)
函数PlaySound和sndPlaySound的用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服