扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.用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)
' 以同步的方式调用系统启动时候的声音。
2. 调用媒体播放器控件
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
思路很重要,我以前做过,上一曲下一曲,这个控件有自带的,顺序的话就是判断是否到音乐帧的尾端,如果是,就指向下一曲,循环的话有单曲和全部,也是比较简单,同顺序,至于
随机播放
的话,我当时是用
随机数
解决的,就是计算列表中有多少首歌曲,计算之后,进行随机产生一个数字,用该数字定位歌曲,进行播放
方法一:调用系统DLL(这个有点不完善,也就是播放声音时窗体无法控制,效果相当于Enabled=true,但音频播放完毕后就没事了)
Private Declare Function sndPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SoundFile As String, Result As Long
SoundFile = "D:\KuGou\Pianoboy - 第105天.wav" '此处为路径
Result = sndPlaySound(SoundFile, 0)
End Sub
方法二:使用WindowsMediaPlayer(WindowsMediaPlayer1的可见为False)
先添加一个windowsmediaplayer控件(工具箱里没有,需要手动添加)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WindowsMediaPlayer1.visible=False
Me.WindowsMediaPlayer1.URL = "D:\KuGou\Pianoboy - 第105天.mp3"
End Sub
上面的都是点击button1(按钮1)后播放声音,若是鼠标移动到某控件上发出声音的话改一下触发事件就OK了。
“工具箱”中单击右键,选择“选择项”菜单,打开“选择工具箱项”窗口,选择“
COM组件
”标签,在列表中找到并勾选“Windows
Media
Player”组件,单击“确定”按钮。将该组件添加到指定的工具箱
选项卡
中,然后在工具箱里面找
Windows
Media
Player
控件,拉到form里面,拉出来的控件就是AxWindowsMediaPlayer
My.Computer.Audio.Play("SoundFile.wav")
SoundFile.wav是你要播放的声音文件的路径
该控件调用的是你的电脑上的播放器
Windows Media Player本身支持的视频格式很少 (有.wmv、.wvx、.asf、.asx、.wpl、.wm、.wmx、.wmd 和 .wmz .vob、.avi、.mpeg、.mpg、.mpe、.m1v、.mp2、.mpv2、.mp2v 和 .mpa ),而且您的计算机上面必须安装很多解码器才能完全支持这些格式 ,所以您下载的电影有可能不能播放。
如果您想让Windows Media Player支持不仅以上格式,而且支持几乎所有视频格式,就请您下载安装完美解码这款软件,安装完后,在Windows Media Player的主菜单(鼠标右键Windows Media Player窗口的顶端)当中选择工具--选项--DVD选项卡--高级--在弹出来的对话框中选择“编码解码器”选项卡,在右面一侧把显示“未启用”字样的全部改为“libavcodec”字样,单击确定,然后,您会发现Windows Media Player支持很多格式(包括播放DVD、3GP)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流