十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
res 没有实例化应该,你下个断点在Dim bytes(res.Length - 1) As Byte这句,然后看看res是不是为nothing
创新互联为企业级客户提高一站式互联网+设计服务,主要包括网站设计制作、做网站、APP应用开发、微信平台小程序开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
My.Computer.Audio.Play("文件路径及文件名")就可以了,vb.net没有必要用API
下面是读取嵌入式文件:
Dim res As Stream = Assembly.GetEntryAssembly.GetManifestResourceStream("ring.wav")
Dim bytes(res.Length - 1) As Byte
res.Read(bytes, 0, bytes.Length)
My.Computer.Audio.Play(bytes, AudioPlayMode.Background)
'注意生成操作哪里要选择:嵌入的资源
代码是没有错的,但是其中关键是声音文件资源定义字串必须使用根命名空间,不能用程序集名称;还有就是声音文件必须选属性为嵌入资源。
My.Computer.Audio.Play(My.Resources.xxxmusic1xxx, AudioPlayMode.Background)
用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
如满意,请采纳,还有不懂的请追问,谢谢。
Imports System.Reflection
Imports System.IO
'下面是读取嵌入文件方法
Dim res As Stream = Assembly.GetEntryAssembly.GetManifestResourceStream("WindowsApplication1.duanxin.wav")'WindowsApplication1为你实际的工程文件名
Dim bytes(res.Length - 1) As Byte
res.Read(bytes, 0, bytes.Length)
My.Computer.Audio.Play(bytes, AudioPlayMode.Background)
My.Computer.Audio.Play("SoundFile.wav")
SoundFile.wav是你要播放的声音文件的路径