vb资源文件中怎么实现两首wav音乐同时播放呢?

来源:百度知道 编辑:UC知道 时间:2024/07/08 20:45:53
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如果能够详细点就更好了,前面说得很不错呀!!

好像这个 API 不能同时播放,我曾试过 如果是同步播放就必须等到前一段播放完了才会播放下一段,异步播放的话必须要获取前一段的播放时间,在两段声音播放中间做一个延时器我想可以做到分别播放。如果没有延时器,那么只能听到一段声音,前一段没有播放出来,遇到第一段播放指令第一段就停止了。要想同时播放两个声音,你考虑一下 mciSendString API吧。用他制作一个类,new 两个声音类就可以做到同时播放了!

mciSendString 在 MSDN 中有示例,中间的控制命令就是像 SQL 一样的控制字符。找一找自己组合,写代码也太多了,做一个名副其实的程序开发人员吧。