如何同时播放两个以上的WAV?? -_-(120分)

雷曼

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中用两个以上Mediaplayer播放wav时,只能有一个被播放出来,
这样,我被迫要用midi做背景音,在Delphi 深度历险中找到了一个wavmix
但编译时老有警告。请问各位大虾有没有更好的方法,用空件或API
都可
 
W

wuyi

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有用两个tThread去分别控制这两个Mediaplayer.我没试过,想当然的.
 
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
请看 <a href=http://www.undu.com/Articles/980422c.htm>Digital Sound in Delphi - Part II</a> 和 <a href=http://www.undu.com/Articles/980228a.htm>Digital Sound and Music in Delphi</a>
 
B

bluebird

Unregistered / Unconfirmed
GUEST, unregistred user!
试试Diretx的API可能行
 
S

Sun

Unregistered / Unconfirmed
GUEST, unregistred user!
我想不行!因为声卡一般由三个放音通道——wav,midi和cd,每个声音通道
一次只能播放一个声音文件,但三个通道可以同时工作。
 
J

jghuang

Unregistered / Unconfirmed
GUEST, unregistred user!
I agree Sun.
 

唐晓锋

Unregistered / Unconfirmed
GUEST, unregistred user!
你不会是要两个WAV同时播放吧,如果是你把他们合成一个WAV不就行了.
如果不是,你把你的要求说出来,大家帮你想个变通的方法.
 

雷曼

Unregistered / Unconfirmed
GUEST, unregistred user!
线程和DXsound我都试过了,不行。
看了yysun给的网址,好象有戏。让我试一试...

天涯若比邻 ~_~
 

雷曼

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中有人解说,同时按钮的声音也是.wav,如果正在
解说的话,鼠标移动到按钮上按钮的声音就发不出来,如唐晓锋
所说,就是需要把两wav混合再输出,但不是把两wav合成一个。

天涯若比邻 ~_~
 
R

redforks

Unregistered / Unconfirmed
GUEST, unregistred user!
用DirectSound可以,用ActiveMovie打开两个以上.wav文件时,就可以
听到两个文件同时播放时的声音。只是直接用DirectSound编程比较繁琐,
如果有DirectX的第三方工具可以试试。
 

雷曼

Unregistered / Unconfirmed
GUEST, unregistred user!
终于试出来了,用DirectSound可以,但我是用DXsound控件,
而且是D5。各位有没有直接使用Directx的代码,同时我也研究一下。
我主要想能在不借助控件,或其他 DLL 的情况下实现此功能。如果
各位能找到6.0以上的DX控件(for D4)的话请告诉我网址
 
T

tqz

Unregistered / Unconfirmed
GUEST, unregistred user!
WaveMix,参见MSDN
 
K

kane

Unregistered / Unconfirmed
GUEST, unregistred user!
有的好声卡支持多WAV同时播放,这可能跟硬件也有关系
到时候你程序做好了,声明一下需XXX元以上声卡支持,呵呵
 
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!
使用DIRECT SOUND可以完成,
 
J

Jimchael Tsee

Unregistered / Unconfirmed
GUEST, unregistred user!
用DirectSound是可以实现的. 这种方法只受到CPU和声卡的限制,
因为播放声音要占用CPU和声卡的资源.
 
G

Ginger

Unregistered / Unconfirmed
GUEST, unregistred user!
  使用MmSystem.pas(即Ms MmSystem.dll)中的低级函数"WaveOut...(...)",
好象是WaveOutWrite(...)罢(当然先有一系列初始化),连续调用两次,不同的
wav文件就会同时播放出来(自然声音叠加在一块儿)。
 
Y

ygy

Unregistered / Unconfirmed
GUEST, unregistred user!
雷曼
我也遇到和你一样的问题,同时播放两个WAV,能否告诉我你具体是如何解决的?把DXsound控件寄给我好吗?topdisc@public.hz.zj.cn,谢谢!
 
Y

ygy

Unregistered / Unconfirmed
GUEST, unregistred user!
雷曼
我也遇到和你一样的问题,同时播放两个WAV,能否告诉我你具体是如何解决的?把DXsound控件寄给我好吗?topdisc@public.hz.zj.cn,谢谢!
 
U

urus

Unregistered / Unconfirmed
GUEST, unregistred user!
可以的,到深度历险上载个Taudio控件,
在ONFillBUffer事件中把n个wav文件实时地合成在一起,
不过如果wav的格式不同就麻烦点了。
 
H

Haw Wang

Unregistered / Unconfirmed
GUEST, unregistred user!
用DXSound是可以播放多个*.wav文件的,但是,如果任务被切换(Alt+Tab),就
听不到任何声音了。这个问题大家考虑过没有?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
863
DelphiTeacher的专栏
D
顶部