VB.NET声音播放实际开发技巧讲解
创始人
2024-06-19 21:41:31
0

VB.NET开发平台的出现,帮助开发人员实现了很多以前都难以实现的功能需求。并且可以保证程序开发的安全性能。由VB6升级为.NET后,有些人不清楚声音的处理,比如程序出错的时候,自定义一个VB.NET声音播放,或者程序的背景音乐、包括游戏音乐等等。下面介绍几种在VB.NET中计较简单可以实现的方案: #t#

VB.NET声音播放1. Beep

最简单的一种方法,通过计算机的扬声器发出声响, 声响的音高与持续时间取决于硬件和系统软件,从而随计算机不同而不同。

Beepg跟Msgbox等方法位于Microsoft.VisualBasic.Interaction 中,一般默认系统会自动加载。调用很简单,看下面的例子。

 

  1. Dim I As Integer  
  2. For I = 1 To 100 ' Loop 100 times.  
  3. Beep() ' Sound a tone.  
  4. Next I 

 

VB.NET声音播放2. 用Win32 API PlaySound

PlaySound位于"winmm.dll"中,可以根据输入参数的不同,播放WAV类型的音乐。在VB.NET中调用跟VB6中差不多:

先声明:

 

  1. Private Declare Auto Function PlaySound 
    Lib "winmm.dll" (ByVal lpszSoundName 
    As String, ByVal hModule As Integer, 
    ByVal dwFlags As Integer) As Integer  
  2. Const SND_FILENAME As Integer = &H20000  
  3. Const SND_ALIAS As Integer = &H10000  
  4. Const SND_SYNC As Integer = &H0 

 

具体还有很多常量,不一一列举,下面是播放一个wav文件的例子

 

  1. Dim mstrfileName As String = "c:"eagle2.wav"  
  2. PlaySound(mstrfileName, 0, SND_FILENAME) 

 

注意上面的播放是非同步的,就是说它并不会播放完毕才结束。如果把上面的代码写在一个Button.Click的事件处理程序中,第二次点击的时候它会打断第一次的播放,重新开始。

当然我们也可以调用系统的声音:

 

  1. PlaySound("SystemStart", 0, SND_ALIAS Or SND_SYNC) 

' 以同步的方式调用系统启动时候的声音。

VB.NET声音播放3. 调用媒体播放器控件

VB.NET中并没有提供媒体播放器的.NET组件,没办法我们还是调用以前Com组件Windows Media Player。当然除了声音外,还可以播放视频文件。

首先把媒体播放器控件加到工具栏中,调用还是简单的写一下吧:)

 

  1. Private Sub playMediaFile
    (ByVal mediaFileName As String)  
  2. With MediaPlayer1  
  3. .Stop()  
  4. .FileName = "c:"mp3"爱不爱我.mp3" 
  5. .Play()  
  6. End With  
  7. End Sub 

 

VB.NET声音播放总结:

虽然VB.NET比VB6改变了很多,包括真正的OOP,多线程等等,但是总归还是跟VB有很多联系,建议大家碰到难于解决的问题的时候,试一下以前的处理方式,一般都能奏效J

相关内容

热门资讯

如何允许远程连接到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 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...