转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
播放声音文件         ★★★★

播放声音文件

作者:闵涛 文章来源:闵涛的学习笔记 点击数:646 更新时间:2009/4/23 14:57:50
 编写游戏,或将要进行一项非常冗长的过程, 可以通过播放音乐来增加游戏的声光效果或是减少漫长的等待所带来 的困倦。本文介绍如何在Visual Basic 中播放声音文件。
  在Windows系统中支持的声音文件有WAV文件和MIDI文件,通常使 用Windows应用程序编程接口(API)函数可以对MIDI文件进行播放;而 使用API函数sndPlaySound则可以对WAV 播放文件进行播放,当然,也 可以使用nciExecute函数来播放WAV文件。播放WAV文件
  需要在程序窗体的通用声明部分中或标准模块中添加如下声明语 句:
  Private Declare Function sndPlaySound Lib "winmm.dll" Al ias"sndPlaySound A"((ByVal lpszSound Name As String,ByVal uF lags As Long)As Long
  然后添回如下标准识常量:
  Public Const SND_SYNC=& H0
  Public Const SND_ASYNC=& H1
  Public Const SND_NODEFAULT=& H2
  Public Const SND_MEMORY=& H4
  Public Const SND_ALIAS=& H10000
  Public Const SND_RESOURCE=& H40004
  Public Const SND_ALIAS_ID=& H110000
  Public Const SND_ALIAS_START=0
  Public Const SND_LOOP=& H8
  Public Const SND_NOSTOP=& H10
  Public Const SND_VALID=& H1F
  Public Const SND_NOWAIT=& H2000
  Public Const SND_validflags=& H17201F
  Public Const SND_RESERVED=& HFF000000
  Public Const SND_TYPE_MASK=& H170007
  sndPlaySound函数需要两个参数,第一个参数soundfilename是要 播放的WAV文件的名称,第二个参数是一个表明播放方式的标识常量, 其值如上述常量定义,通常所使用的标识意义如下:
  ?SND_SYNC播放WAV文件,播放完毕后将控制转移回应用程序中。
  ?SND_ASYNC播放WAV文件,然后将控制立即转移回应用程序中。
  ?SND_NODEFAULT不要播放缺省的WAV文件,以免发生某些意外的 错误。
  ?SND_MEMORY播放以前已经加载到内存中的WAV文件。
  ?SND_LOOP循环播放WAV文件。
  ?SND_NOSTOP在开始播放其它的WAV文件之前,需要完成对本WAV 文件的播放。
  值得注意的是SND_LOOP标识通常需要同SND_ASYNC共同使用,也即 在两个标识之间添加与播放符,以免在对WAV文件进行播放的时候将系 统挂起。
   播放MIDI文件
  需要在程? 体的通用声明部分中或标准模块中添加如下声明语 句:
  Private Declare Function mciExecute Lib"winmm.dll"Alias" mciExecute"(ByVa l lpstrComman As String)As Long
  mciExecute函数只需要一个参数CommandString,顾名思义,它是 一个命令字符串,用于表明对声音文件播放的命令,例如,希望完整播 放声音文件,则该字符串就是字符串"pl ay"加上声音文件的路径以及 文件名称,如下所示:
  Dim Return Vsalue As Long
  ReturnSoundValue=mciEecute("play C:\WIN95\MEDIA\CAYON.MI D/")
  如果希望对声音文件的部分进行播放,可以使用from…to…语句 格式,例如若要 播放CANYON.MID文件的10毫秒到100毫秒的部分,可以 使用如下的语句:
  Dim Return Value As Long
  RetumSoundValue=mciExecute("play C:\WIND95\MEDIA/CASNYON .MID from10 to 100")
  micExecute函数也可以用来对WAV文件进行播放,方法同播放MIDI 一样。
  样例程序
  1.在Visual Basic中开始一个新的项目,采用缺省的方法建立For m1。
  2.将如下声明语句添加到Form1的通常声明部分中(注意每个声明 语句需要书写在一行内):
  Private Declare Function sndPlaySound Lib"winmm.dll"Alia s"sndPlaySoundA" (ByVal lpszSoundName As String,ByVal uFlags As Long)As long
  Const SND_SYNC=& H0
  Const SND_ASYNC=& H1
  Const SND_NODEFAULT=& H2
  Const SND_MEMORY=& H4
  Const SND_ALIAS=& H10000
  Const SND_FILENAME=&H20000
  Const SND_RESOURCE=& H40004
  Const SND_ALIAS_ID=& H110000
  Const SND_ALIAS_START=0
  Const SND_LOOP=& H8
  Const SND_NOSTOP=& H10
  Const SND_VALID=& H1F
  Const SND_NOWAIT=& H2000
  Const SND_validflags=& H17201F
  Const SND_RESERVED=& HFF000000
  Const SND_TYPE_MASK=& H170007
  Private Declare Function mciExecute Lib"winmm.dll"Alias" mciExecute"(ByVa l lpstrCommand As String)As Long
  3.在Forml上添加一个文本框控件,采用缺省的方法建立TexT1。 将其Caption属性设置为NULL。
  4.在Form1上添加一个命令按钮控件,采用缺省的方法建立Comman d1。将其Caption属性设置为"使用mciExecute函数"。
  5.在Form1上添加一个命令按钮控件,采用缺省的方法建立Comman d2。将其Cpaption 属性设置为"使用mciExecute函数"。
  6.将如下代码添加到Command1的单击事件中:
  Private Sub Command1_Click()
  Dim Return Value As Long
  Text1.Test="使用sndPlaySound函数播放Canyon.mid文件Return Value=sanPlaySou nd("C:\WIN95\WEDIA\TADA.WAV",SND_SYNC)
  End Sub
  7.将如下代码添加到Command2的单击事件中:
  Private Sub Command2_Click()
  Dim Return Value As Long
  Text1.Test="使用sndPlaySound函数播放Canyon.mid文件。"
  ReturnSoundValue=mciExdecute"play C:\WIN95\MEDA\CNYON.MI D from 10to 100"
  EndSub
  按下F5键来执行样例程序。单击"使用sndPlaySound函数"命令按 钮,则使用sndPlay Sound函数来播放C:\WIN95\MEDIA目录下的TADA.W AV声音文件。音击"使用mciExe cute函数来播放C:\MIN95\MED IA目录下CANYON.MID文件的10毫秒到100毫秒的部分。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台