扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用API mciSendString可以同时播放多个声音,需要提供路径。
创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元西乡塘做网站,已为上家服务,为西乡塘各地企业和个人服务,联系电话:13518219792
资源文件很麻烦,要用反射读取出来,再用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
如满意,请采纳,还有不懂的请追问,谢谢。
Private Sub Command1_Click() ''添加音乐文件
On Error Resume Next
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
End Sub
Private Sub Command2_Click() '''播放音乐文件
WindowsMediaPlayer1.URL = Text1.Text
WindowsMediaPlayer1.Controls.play
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long) '当歌曲播放状态改变时触发此事件
Static js As Integer
If NewState = 1 Then '如果歌曲播放完毕
js = js + 1 '计数+1
If js 10 Then '是否少于10次
WindowsMediaPlayer1.Controls.play '再次播放
Else
js = 0 '否则停止播放且计数清零
End If
End If
End Sub
不过最好的解决办法是利用歌曲列表来实现,只要在程序中把同一首歌在列表中添加10次,它就会自动重复播放10次,无须再用程序进行额外控制了。这个就你自己去研究了。
“单曲循环”就是反复播放“当前正在播放的歌曲”吧!
这个应该不难呀,播放器的“行为控制”,是你的代码决定的。
如果选择了“单曲循环”模式,那就在它播放完后,重新加载这首歌曲来播放呗。
当前正在播放的是哪首歌,你的”代码中“是知道的吧!
思路很重要,我以前做过,上一曲下一曲,这个控件有自带的,顺序的话就是判断是否到音乐帧的尾端,如果是,就指向下一曲,循环的话有单曲和全部,也是比较简单,同顺序,至于随机播放的话,我当时是用随机数解决的,就是计算列表中有多少首歌曲,计算之后,进行随机产生一个数字,用该数字定位歌曲,进行播放
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流