有关wav文件的播放问题(50分)

  • 主题发起人 主题发起人 Pear
  • 开始时间 开始时间
P

Pear

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大虾:
本人使用ICQ打字时即使是快速敲击键盘,它也能连续发音,而我在Form 中的OnKeyPress事件中用TMediaPlayer播放wav文件,但它的响应速度很慢,请问如何解决?
 
兄弟,不能这样玩儿的,用API吧。
 
sndplaysound 不复杂的。
 
本人是初学者,对API不熟悉,sndplaysound怎么用劳烦指点?
 
一个函数:

PlaySound(
LPCSTR pszSound,
HMODULE hmod,
DWORD fdwSound
)
可以放很多种不同方式的wave:在文件、在资源里面等等
播放文件是这样:

C++ Builder:

PlaySound("文件名",NULL,SND_FILENAME | SND_ASYNC)

SND_ASYNC 是表示异步,就是不等声音放完就立即返回,感觉会好象快点
如果没有SND_ASYNC那函数要等声音放完才返回,感觉会慢点

delphi:

要先 uses mmsystem

PlaySound('文件名',0,SND_FILENAME + SND_ASYNC);
 
最好用waveOut系列函数,
这样最直接,最快,
首先要定义一个结构,
再填写好结构中各项内容,
结构中各项可在声音文件的头部信息中找到.
自己处理文件的读取,
如果声音文件比较小,
可读至内存中,反复播放.
详细参阅MSDN.

 
多人接受答案了。
 

Similar threads

D
回复
0
查看
802
DelphiTeacher的专栏
D
D
回复
0
查看
747
DelphiTeacher的专栏
D
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
696
DelphiTeacher的专栏
D
后退
顶部