vb实现播放声音文件

2016-02-19 14:53 76 1 收藏

今天图老师小编给大家展示的是vb实现播放声音文件,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!

【 tulaoshi.com - 编程语言 】

  在某些情况下,例如编写游戏,或将要进行一项非常冗长的过程, 可以通过播放音乐来增加游戏的声光效果或是减少漫长的等待所带来 的困倦。本文介绍如何在Visual Basic 中播放声音文件。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  在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"加上声音文件的路径以及 文件名称,如下所示:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  Dim Return Vsalue As Long

  ReturnSoundValue=mciEecute("play C:WIN95MEDIACAYON.MI D/")

  如果希望对声音文件的部分进行播放,可以使用fromto语句 格式,例如若要 播放CANYON.MID文件的10毫秒到100毫秒的部分,可以 使用如下的语句:

  Dim Return Value As Long

  RetumSoundValue=mciExecute("play C:WIND95MEDIA/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:WIN95WEDIATADA.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:WIN95MEDACNYON.MI D from 10to 100"

  EndSub

  按下F5键来执行样例程序。单击"使用sndPlaySound函数"命令按 钮,则使用sndPlay Sound函数来播放C:WIN95MEDIA目录下的TADA.W AV声音文件。音击"使用mciExe cute函数来播放C:MIN95MED IA目录下CANYON.MID文件的10毫秒到100毫秒的部分。

来源:https://www.tulaoshi.com/n/20160219/1608231.html

延伸阅读
AVI文件是语音和影像同步组合在一起的文件格式。在VB50中用MMControl多媒体控件设计播放AVI文件的程序步骤如下: 1新建一个工程。 2在Form1上建立一个MMControl控件,并建立一个图片框。 3设定MMControl对象的按钮属性。 4撰写程序如下: PrivateSubForm_Load() MMControl1.DeviceType=″avivideo″ MMCo...
VB提供的方法使我们可以很容易地使用资源文件中的字符、图片等资源。我们可以用以下方法播放资源文件中的wav声音:首先,在你的资源文件的源文件(RC)文件加入下面一行: MySoundWAVEc:musicvanhalen.wav 然后将其编译为RES文件。最后使用下面的声明及代码: PrivateDeclareFunctionPlaySoundLib_"winmm.dll"Alias"PlaySoundA"(...
喜马拉雅怎么上传声音文件   喜马拉雅是一款非常好用的电台类软件,你不仅可以在喜马拉雅收听自己喜欢的电台,也可以上传自己录制的电台文件,喜马拉雅怎么上传声音文件,下面小编就给大家带来喜马拉雅发表录音教程。 打开喜马拉雅app 注册账号步骤这里省去。登录后,进入我选项卡。 点击录音,进入录音界面。中...
在VB中要实现查找文件功能,我们可以利用VB的DIR函数进行递归来实现。每次使用DIR函数后,比较是否有要查找的文件,再检查是否有子目录,若有,利用递归继续查找,这样可对整个盘进行查找。 下面是一个例子,查找DOS目录下的所有EXE文件,统计EXE文件的数目并列出文件名。本程序会查找当前路径下的所有文件和子目录,与WIN95的“包含子文件...
VisualBasic作为一个集应用程序开发、测试、查错功能于一体的集成式开发环境,越来越受到程序员的青睐。笔者在开发某数据库维护系统的过程中,选择了VB5.0作为开发平台,Unix作为服务器端操作系统,Informix作为服务器数据库。 问题的出现 在开发该维护系统的过程中,注意到Informix数据库的字段类型CLOB填入数据时需要函数FILETOCLOB("FILEN...

经验教程

268

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部