用API mciSendString可以同時播放多個聲音,需要提供路徑。
創(chuàng)新互聯(lián)建站,為您提供重慶網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)成都餐廳設(shè)計等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進步,是我們永遠的責(zé)任!
資源文件很麻煩,要用反射讀取出來,再用IO寫到磁盤路徑。
你是做游戲把?軟糖建議是不要使用資源文件,而使用本地文件。
用個BGM文件夾保存背景音樂,用SE文件夾保存音效(學(xué)習(xí)RPG Maker的做法)
API代碼奉上,具體實現(xiàn)模塊字數(shù)超過最大值,請下載附件
Imports?System.Text
'''?summary
'''?可播放MPEG,AVI,WAV,MP3,MID,WMA等格式的音頻文件,*不支持OGG
'''?/summary
Public?Class?音頻設(shè)備
'聲明API函數(shù):?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函數(shù):?mciGetErrorString
System.Runtime.InteropServices.DllImport("winmm.dll",?EntryPoint:="mciSendString")
Public?Shared?Function?mciGetErrorString(errCode?As?Integer,
errMsg?As?StringBuilder,
buflen?As?Integer)?As?Integer
調(diào)用方法
Public?Class?Form1
Dim?音頻設(shè)備?As?New?音頻設(shè)備
Private?Sub?Button1_Click(sender?As?Object,?e?As?EventArgs)?Handles?Button1.Click
Dim?路徑?=?"F:\音樂文件名.mp3"
音頻設(shè)備.打開("自定義名稱1",?路徑)
音頻設(shè)備.播放("自定義名稱1")
'音頻設(shè)備.暫停("自定義名稱1")
'音頻設(shè)備.繼續(xù)("自定義名稱1")
'音頻設(shè)備.關(guān)閉("自定義名稱1")
End?Sub
End?Class
如滿意,請采納,還有不懂的請追問,謝謝。
res 沒有實例化應(yīng)該,你下個斷點在Dim bytes(res.Length - 1) As Byte這句,然后看看res是不是為nothing
代碼是沒有錯的,但是其中關(guān)鍵是聲音文件資源定義字串必須使用根命名空間,不能用程序集名稱;還有就是聲音文件必須選屬性為嵌入資源。
My.Computer.Audio.Play(My.Resources.xxxmusic1xxx, AudioPlayMode.Background)
給你個 很簡單的
Public Class Form1
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
‘ 聲明函數(shù) mciexcute 加入庫 winmm.all
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call mciExecute("play E:\music\music\單身情歌.wma ")
'在 formload過程中 調(diào)用函數(shù) mciexcute 里面 是 文件 路徑
End Sub
End Class