vb资源文件中怎么实现两首wav音乐同时播放呢?
OptionExplicit'播放资源文件声音PrivateDeclareFunctionsndPlaySoundLib"winmm.dll"Alias"sndPlayS...
Option Explicit
'播放资源文件声音
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
Private Const SND_ASYNC = &H1 ' 异步播放
Private Const SND_NODEFAULT = &H2 ' 不使用缺省声音
Private Const SND_MEMORY = &H4 ' lpszSoundName 指向一个内存文件
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Sub Form_Load()
Dim B() As Byte '如果把这个语句放在过程中则将不能异步播放
B = LoadResData(102, "CUSTOM")
sndPlaySound B(0), SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY
End Sub
在我这个代码上添加....
mciSendString API如果能够详细点就更好了,前面说得很不错呀!! 展开
'播放资源文件声音
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
Private Const SND_ASYNC = &H1 ' 异步播放
Private Const SND_NODEFAULT = &H2 ' 不使用缺省声音
Private Const SND_MEMORY = &H4 ' lpszSoundName 指向一个内存文件
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Sub Form_Load()
Dim B() As Byte '如果把这个语句放在过程中则将不能异步播放
B = LoadResData(102, "CUSTOM")
sndPlaySound B(0), SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY
End Sub
在我这个代码上添加....
mciSendString API如果能够详细点就更好了,前面说得很不错呀!! 展开
1个回答
展开全部
好像这个 API 不能同时播放,我曾试过 如果是同步播放就必须等到前一段播放完了才会播放下一段,异步播放的话必须要获取前一段的播放时间,在两段声音播放中间做一个延时器我想可以做到分别播放。如果没有延时器,那么只能听到一段声音,前一段没有播放出来,遇到第一段播放指令第一段就停止了。要想同时播放两个声音,你考虑一下 mciSendString API吧。用他制作一个类,new 两个声音类就可以做到同时播放了!
mciSendString 在 MSDN 中有示例,中间的控制命令就是像 SQL 一样的控制字符。找一找自己组合,写代码也太多了,做一个名副其实的程序开发人员吧。
mciSendString 在 MSDN 中有示例,中间的控制命令就是像 SQL 一样的控制字符。找一找自己组合,写代码也太多了,做一个名副其实的程序开发人员吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询