首页 > 编程 > .NET > 正文

VB.NET中声音的播放

2024-07-10 13:07:14
字体:
来源:转载
供稿:网友
由vb6升级为.net后,有些人不清楚声音的处理,比如程序出错的时候,自定义一个声音播放,或者程序的背景音乐、包括游戏音乐等等。下面介绍几种在vb.net中计较简单可以实现的方案:



1.  beep

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

beepg跟msgbox等方法位于microsoft.visualbasic.interaction 中,一般默认系统会自动加载。调用很简单,看下面的例子。

dim i as integer

for i = 1 to 100   ' loop 100 times.

     beep()      '  sound a tone.

next i



2. 用win32 api playsound

playsound位于"winmm.dll"中,可以根据输入参数的不同,播放wav类型的音乐。在vb.net中调用跟vb6中差不多:

先声明:

private declare auto function playsound lib "winmm.dll" (byval lpszsoundname as string, byval hmodule as integer, byval dwflags as integer) as integer



const snd_filename as integer = &h20000

const snd_alias as integer = &h10000

const snd_sync as integer = &h0

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

dim mstrfilename as string = "c:/eagle2.wav"

playsound(mstrfilename, 0, snd_filename)



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



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

playsound("systemstart", 0, snd_alias or snd_sync)

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



3.  调用媒体播放器控件



vb.net中并没有提供媒体播放器的.net组件,没办法我们还是调用以前com组件windows media player。当然除了声音外,还可以播放视频文件。

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



private sub playmediafile(byval mediafilename as string)

  with mediaplayer1

   .stop()

   .filename = "c:/mp3/爱不爱我.mp3"

   .play()

  end with

end sub



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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表