对“声卡编程”(低级函数调用)有经验的朋友请点击。。。谢谢你的帮助! 试试DIRECT SOUND是比底层音频函数更低级的接口 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Direct sound is only for Win95,好像还不支持Wav保存。 编了个函数void InitSound(CClientDC *dc) //Init { WAVEFORMATEX wfx; LPHWAVEIN phwi=NULL; UINT uDeviceID=WAVE_MAPPER; LPWAVEFORMATEX pwfx=&wfx; DWORD dwCallback=0; DWORD dwCallbackInstance=0; DWORD fdwOpen=CALLBACK_EVENT; MMRESULT s=0; char mid[80]; wfx.wFormatTag=WAVE_FORMAT_PCM; wfx.wBitsPerSample=16; wfx.nSamplesPerSec=11025; wfx.nAvgBytesPerSec=22050; wfx.nBlockAlign=2; s=waveInOpen(phwi,uDeviceID,pwfx,dwCallback,dwCallbackInstance,fdwOpen); sprintf(mid,"phwi=%ld s=%ld" ,phwi,s); outword(*&dc,100,7,mid);} 结果显示:phwi=0 s=11为什么 waveInOpen(...)的返回值是 11 ??查MSDN说明:返回值为:MMSYSERR_NOERROR =0MMSYSERR_ALLOCATED =4MMSYSERR_BADDEVICEID =2MMSYSERR_NODRIVER =6MMSYSERR_NOMEM =7WAVERR_BADFORMAT) =32那么 s= 11 是怎么回事?? 返回值是 11说明参数无效。你没有指定声道数。对WAVEFORMATEX的赋值不全。 加入wfx.nChannels=1;但是,结果还是s=11 类似的程序我有,[email protected] http://www.codeguru.com/multimedia/echosound.html用wave函数一边录,一边放,一边写 你的信箱?你的mail我收到,但是无法回复,怎么回事? 对了,我的Email是 [email protected] 也希望大家能与我多多讨论。 局域网 多人聊天 怎样将CFontDialog的界面改成英文版的 一个有关OCX控件的问题 解决者200分 VC对话框程序中如何为任务栏上的所有窗口添加右键菜单? 请教各位大哥: VC的DLL转成JAVA可调用的程序难度大不大? 谢谢!!! 窗体的非客户区的高度可以调节的吗? 终于知道为啥有人批评vc6的mfc了~ CMenu指针报错,求救啊 讨论一下服务器与客户机的通信机制 怎样把ascii转化为字符和数字 怎么解格式为rar的软件??50分相送 sqlserver 可是只让我安装客户端 不让我安装服务器版 怎么解决请指教
void InitSound(CClientDC *dc) //Init
{
WAVEFORMATEX wfx;
LPHWAVEIN phwi=NULL;
UINT uDeviceID=WAVE_MAPPER;
LPWAVEFORMATEX pwfx=&wfx;
DWORD dwCallback=0;
DWORD dwCallbackInstance=0;
DWORD fdwOpen=CALLBACK_EVENT;
MMRESULT s=0;
char mid[80]; wfx.wFormatTag=WAVE_FORMAT_PCM;
wfx.wBitsPerSample=16;
wfx.nSamplesPerSec=11025;
wfx.nAvgBytesPerSec=22050;
wfx.nBlockAlign=2;
s=waveInOpen(phwi,uDeviceID,pwfx,dwCallback,dwCallbackInstance,fdwOpen);
sprintf(mid,"phwi=%ld s=%ld" ,phwi,s);
outword(*&dc,100,7,mid);} 结果显示:phwi=0 s=11
为什么 waveInOpen(...)的返回值是 11 ??查MSDN说明:
返回值为:
MMSYSERR_NOERROR =0
MMSYSERR_ALLOCATED =4
MMSYSERR_BADDEVICEID =2
MMSYSERR_NODRIVER =6
MMSYSERR_NOMEM =7
WAVERR_BADFORMAT) =32
那么 s= 11 是怎么回事??
wfx.nChannels=1;
但是,结果还是s=11
用wave函数一边录,一边放,一边写
你的mail我收到,但是无法回复,怎么回事?
也希望大家能与我多多讨论。