利用API播放声音文件

寻找可爱淘nyj

寻找可爱淘nyj

2016-02-19 17:53

今天给大家分享的是由图老师小编精心为您推荐的利用API播放声音文件,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!
-在某些情况下,例如程序员正在编写一个游戏,或是将要进行一项非常冗长无聊的过程,可以通过播放音乐来增加游戏的声光效果或是减少漫长的等待所带来的困倦。本文介绍如何在MicrosoftVisualBasic中对声音文件进行播放。
  
  播放声音文件
  
  ----在MicrosoftVisualBasic中进行多媒体音乐的播放是一件非常轻松的事情。在MicrosoftWindows系统中支持的声音文件有WAV文件和MIDI文件,通常使用Windows应用程序编程接口(API)函数mciExecute函数可以对MIDI文件进行播放。而使用API函数sndPlaySound则可以对WAV播放文件进行播放,当然,你也可以使用mciExecute函数来播放WAV文件。
  
  ----为了播放WAV文件,你需要在你的程序窗体的通用声明部分中,或是标准模块中添加如下的声明语句:
  
  ----PrivateDeclareFunctionsndPlaySoundLib"winmm.dll"Alias"sndPlaySoundA"(ByVallpszSoundNameAsString,ByValuFlagsAsLong)As
  Long
  
  ----以及如下的标识常量:
  
  ----PublicConstSND_SYNC=&H0
  ----PublicConstSND_ASYNC=&H1
  ----PublicConstSND_NODEFAULT=&H2
  ----PublicConstSND_MEMORY=&H4
  ----PublicConstSND_ALIAS=&H10000
  ----PublicConstSND_FILENAME=&H20000
  ----PublicConstSND_RESOURCE=&H40004
  ----PublicConstSND_ALIAS_ID=&H110000
  ----PublicConstSND_ALIAS_START=0
  ----PublicConstSND_LOOP=&H8
  ----PublicConstSND_NOSTOP=&H10
  ----PublicConstSND_VALID=&H1F
  ----PublicConstSND_NOWAIT=&H2000
  ----PublicConstSND_VALIDFLAGS=&H17201F
  ----PublicConstSND_RESERVED=&HFF000000
  ----PublicConstSND_TYPE_MASK=&H170007
  
  ----sndPlaySound函数需要两个参数,第一个参数soundfilename是要播放的WAV文件的名称。第二个参数是一个表明播放方式的标识常量,其定义的值如上所示,通常所使用的标识意义如下:
  
  ----SND_SYNC播放WAV文件,播放完毕后将控制转移回你的应用程序中。
  ----SND_ASYNC播放WAV文件,然后将控制立即转移回你的应用程序中,而不管对WAV文件的播放是否结束。
  ----SND_NODEFAULT不要播放缺省的WAV文件,以免发生某些意外的错误。
  ----SND_MEMORY播放以前已经加载到内存中的WAV文件。
  ----SND_LOOP循环播放WAV文件。
  ----SND_NOSTOP在开始播放其它的WAV文件之前,需要完成对本WAV文件的播放。
  
  ----注意:SND_LOOP标识通常需要同SND_ASYNC共同使用,也即在两个标识之间添加与播放符,以免在对WAV文件进行播放的时候将系统挂起。
  
  ----为了播放MIDI文件,你需要在你的程序窗体的通用声明部分中,或是标准模块中添加如下的声明语句:
  
  ----PrivateDeclareFunctionmciExecuteLib"winmm.dll"Alias"mciExecute"(ByVallpstrCommandAsString)AsLong
  
  ----mciExecute函数只需要一个参数,CommandString,顾名思义,它是一个命令字符串,用于表明对声音文件播放的命令,例如,希望完整播放声音文件,则该字符串就是字符串損lay"加上声音文件的路径以及文件名称,如下所示**
  
  ----DimReturnValueAsLong
  ----ReturnSoundValue=mciExecute("playC:WIN95MEDIACANYON.MID")
  
  ----如果希望对声音文件的部分进行播放,可以使用from...to...语句格式,例如若要播放CANYON.MID文件的10毫秒到100毫秒的部分,可以使用如下的语句:
  
  ----DimReturnValueAsLong
  ----ReturnSoundValue=mciExecute("playC:WIN95MEDIACANYON.MIDfrom10to100")
  ----mciExecute函数也可以用来对WAV文件进行播放,方法同播放MIDI一样。
  
  样例程序
  
  ----1.在VisualBasic中开始一个新的项目,采用缺省的方法建立Form1。
  ----2.将如下的声明语句添加到Form1的通常声明部分中(注意每个声明语句需要被书写在一行内):
  
  ----PrivateDeclareFunctionsndPlaySoundLib"winmm.dll"Alias"
  sndPlaySoundA"(ByVallpszSoundNameAsString,ByValuFlagsAsLong)As
  Long
  
  ----ConstSND_SYNC=&H0
  ----ConstSND_ASYNC=&H1
  ----ConstSND_NODEFAULT=&H2
  ----ConstSND_MEMORY=&H4
  ----ConstSND_ALIAS=&H10000
  ----ConstSND_FILENAME=&H20000
  ----ConstSND_RESOURCE=&H40004
  ----ConstSND_ALIAS_ID=&H110000
  ----ConstSND_ALIAS_START=0
  ----ConstSND_LOOP=&H8
  ----ConstSND_NOSTOP=&H10
  ----ConstSND_VALID=&H1F
  ----ConstSND_NOWAIT=&H2000
  ----ConstSND_VALIDFLAGS=&H17201F
  ----ConstSND_RESERVED=&HFF000000
  ----ConstSND_TYPE_MASK=&H170007
  
  ----PrivateDeclareFunctionmciExecuteLib"winmm.dll"Alias"mciExecute"(ByVallpstrCommandAsString)AsLong
  
  ----3.在Form1上添加一个文本框控件,采用缺省的方法建立Text1。将它的Caption属性设置为NULL。
  
  ----4.在Form1上添加一个命令按钮控件,采用缺省的方法建立Command1。将它的Caption属性设置为"使用sndPlaySound函数敗*
  
  ----5.在Form1上添加一个命令按钮控件,采用缺省的方法建立Command2。将它的Caption属性设置为"使用mciExecute函数敗*
  
  ----6.将如下的代码添加到Command1的单击事件中:
  
  
  PrivateSubCommand1_Click()
  DimReturnValueAsLong
  Text1.Text="使用sndPlaySound函数播放TADA.WAV文件。"
  ReturnValue=sndPlaySound("C:WIN95MEDIATADA.WAV",SND_SYNC)
  EndSub
  
  
  ----7.将如下的代码添加到Command2的单击事件中:
  
  
  PrivateSubCommand2_Click()
  DimReturnValueAsLong
  Text1.Text="使用mciExecute函数播放Canyon.mid文件。"
  ReturnSoundValue=mciExecute
  ("playC:WIN95MEDIACANYON.MIDfrom10to100")
  EndSub
  
  
  ----通过按下F5键来执行样例程序。单击"使用sndPlaySound函数"命令按钮则使用sndPlaySound函数来播放C:WIN95MEDIA目录下面的TADA.WAV声音文件。单击"使用mciExecute函数"则使用mciExecute函数来播放C:WIN95MEDIA目录下面的CANYON.MID文件的10毫秒到100毫秒的部分。->

展开更多 50%)
分享

猜你喜欢

利用API播放声音文件

编程语言 网络编程
利用API播放声音文件

利用Java Applet播放声音文件

编程语言 网络编程
利用Java Applet播放声音文件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

vb实现播放声音文件

编程语言 网络编程
vb实现播放声音文件

幻灯片插入声音文件后复制到其他电脑上却无法播放声音

电脑应用 计算机应用技术 powerpoint
幻灯片插入声音文件后复制到其他电脑上却无法播放声音

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

利用API播放AVI

编程语言 网络编程
利用API播放AVI

PowerPoint中如何嵌入声音文件以及删除嵌入的声音文件

软件教程 powerpoint
PowerPoint中如何嵌入声音文件以及删除嵌入的声音文件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

网站被降权的几种情况及解决办法

网站被降权的几种情况及解决办法

ACCESS转化成SQL2000需要注意的问题

ACCESS转化成SQL2000需要注意的问题
下拉加载更多内容 ↓