VB.NET播放WAV实现方法介绍
创始人
2024-06-21 01:51:41
0

VB.NET编程语言可以说功能是非常强大的。而且其的应用范围也是很广泛。比如对界面的操作,和对声音的操作等等。我们今天将会了解到有关VB.NET播放WAV的相关应用技巧,希望能给大家大带来希望。

Wednesday, September 24 2003 1:24 PM 当一定事件完成时,程序发出特定的信号则可以增加程序的用户界面特性,比如在下载完成或者选择一个命令的时候。使用一个多媒体功能,通过一个vb程序来运行WAV文件是一件轻而易举的事情。然而,系统必须为这一操作而安装一个声卡。

你所需要的API函数称为PlaySound,以下为该函数的声明:

  1. Public Declare Function
     PlaySound Lib "winmm.dll" _  
  2. Alias "PlaySoundA" 
    (ByVallpszName As String, _  
  3. ByValhModule As Long, 
    ByValdwFlags As Long) _  
  4. As Long  

在这一函数中,第一个变量是名称,包括运行的Wave文件的路径。第二个变量在运行文件时通常不使用,所以你可以将它赋值为zero。最后一个变量包含控制函数如何工作的标记。

为了当前的需要,必须需要两个标记。它们是:

SND_ASYNC (value= 1):以异步方式运行,这意味着当播放声音时函数在运行。

SND_FILENAME (value = &H20000):第一个变量为一个文件名。

所以,以下VB.NET播放WAV代码播放了DingDong.wav文件中的声音:

  1. PlaySound "dingdong.
    wav", CLng(0), _  
  2. SND_ASYNC Or SND_FILENAME  

当运行在一个程序中运行音频文件时,还有其他两点值得注意。第一,你必须确保一个特定的音频文件存在,否则会产生错误。这一过程可以用以下一个简单的函数来完成:

  1. Public Function FileExists
    (FullFileName) As Boolean  
  2. '' Passed a filename 
    (with path) returns  
  3. '' True if the file 
    exists, False if not.  
  4. Dim s  
  5. s = dir(FullFileName)  
  6. If s = "" Then  
  7. FileExists = False 
  8. Else  
  9. FileExists = True 
  10. End If  
  11. End Function  

第二,VB.NET播放WAV程序必须具有为用户提供关闭声音的选择设置。这一过程可以通过使用一个比如gProgramSoundsEnabled的全局布尔变量来实现。

我的方法是在一个函数中同时处理这些需要,如下所示。(以下代码假设音频文件已经存放在程序文件中)

  1. Private Sub PlaySoundX
    (filename As String)  
  2. '' If sound is enabled 
    and filename exists,  
  3. '' play the specified sound.  
  4. filename = App.path & 
    "" & filename  
  5. If FileExists(filename) 
    And gProgramSoundsEnabled Then  
  6. PlaySound filename, CLng(0), 
    SND_ASYNC Or SND_FILENAME  
  7. End If  
  8. End Sub  

正确使用这些函数,程序就可以播放任何Wave文件,如下所示:

  1. PlaySoundX "DingDong.wav"  

VB.NET播放WAV的其他方法包括窗体上的多媒体控制。当你不需要这些控制特性时,以上讲述的技术已经足够,并且很容易掌握。

【编辑推荐】

  1. VB.NET嵌入文件操作技巧分享
  2. 深入分析VB.NET FieldOffset特性
  3. VB.NET资源文件应用经验总结
  4. VB.NET Dllimport特性内容概述
  5. 简单实现VB.NET打开Notes数据库

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...