扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
有点复杂,如果是Excel,有Application.DisplayAlerts=False'这是Excel阻止警告
创新互联成都网站建设定制制作,是成都网站营销推广公司,为成都湿喷机提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站设计热线:13518219792
我粗看了下MediaPlayer没有提供类似的接口,试着用消息捕获的方法看看
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) '消息捕获
If m.Msg = H999 Then '这里的值要你自己去测试出来(就是弹出对话框时的值)
SendKeys.Send("{ENTER}") '发送回车键
End If
MyBase.WndProc(m)
End Sub
My.Computer.Audio.Play("SoundFile.wav")
SoundFile.wav是你要播放的声音文件的路径
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim th As New Threading.Thread( _
Sub()
My.Computer.Audio.Play(New Byte() {}, AudioPlayMode.WaitToComplete)
End Sub)
th.Start()
End Sub
如果是WAV文件,这样就行了,不会同时播放
方法一:调用系统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了。
在.NET里,没有托管的音乐播放器,用API只能播放WAV格式,对于MP3等形式的音频文件,就要依赖于其他控件了,常用的就是
MediaPlayer。使用方法:
在工具箱上点右键,选择“选择项目(Choose
Items)”,切到COM选项卡,找到
Windows
Media
Player,
勾选,确定
在t工具箱上,把刚才加入的MediaPlayer控件,拖放到窗体上
代码:
WindowsMediaPlayer1.URL
=
"mp3文件路径,支持网络路径"
WindowsMediaPlayer1.Ctlcontrols.play
基本就OK了,至于其他的操作诸如下一曲上一曲暂停停止,直接看
WindowsMediaPlayer1.Ctlcontrols.
里面的方法吧。
用API mciSendString可以同时播放多个声音,需要提供路径。
资源文件很麻烦,要用反射读取出来,再用IO写到磁盘路径。
你是做游戏把?软糖建议是不要使用资源文件,而使用本地文件。
用个BGM文件夹保存背景音乐,用SE文件夹保存音效(学习RPG Maker的做法)
API代码奉上,具体实现模块字数超过最大值,请下载附件
Imports System.Text
''' summary
''' 可播放MPEG,AVI,WAV,MP3,MID,WMA等格式的音频文件,*不支持OGG
''' /summary
Public Class 音频设备
'声明API函数: mciSendString
System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint:="mciSendString")
Public Shared Function mciSendString(strCommand As String,
strReturn As StringBuilder,
iReturnLength As Integer,
hwndCallback As Integer) As Integer
End Function
'声明API函数: mciGetErrorString
System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint:="mciSendString")
Public Shared Function mciGetErrorString(errCode As Integer,
errMsg As StringBuilder,
buflen As Integer) As Integer
调用方法
Public Class Form1
Dim 音频设备 As New 音频设备
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim 路径 = "F:\音乐文件名.mp3"
音频设备.打开("自定义名称1", 路径)
音频设备.播放("自定义名称1")
'音频设备.暂停("自定义名称1")
'音频设备.继续("自定义名称1")
'音频设备.关闭("自定义名称1")
End Sub
End Class
如满意,请采纳,还有不懂的请追问,谢谢。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流