• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

waveOutOpen问题

wzidong1000 2010-10-22 01:53:49
WAVEFORMATEX waveformatex;
waveformatex.wFormatTag = WAVE_FORMAT_PCM;
waveformatex.nChannels = 1;
waveformatex.nSamplesPerSec = 8000;
waveformatex.nAvgBytesPerSec = 8000;
waveformatex.nBlockAlign = 1;
waveformatex.wBitsPerSample = 16;
waveformatex.cbSize = 0;

if(MMSYSERR_NOERROR!=waveOutOpen(NULL,WAVE_MAPPER,(WAVEFORMATEX*)&waveformatex,NULL,NULL,WAVE_FORMAT_QUERY))
{
//return Close();
;//int a = 100;
}
if(MMSYSERR_NOERROR!=waveOutOpen((LPHWAVEOUT)&hwo,WAVE_MAPPER,(WAVEFORMATEX*)&waveformatex,(DWORD)waveOutProc/*(DWORD)hP*/,(DWORD)this,CALLBACK_FUNCTION/*CALLBACK_WINDOW*/))
{
//returnClose();
;//int a = 100;
}
char* wh_data = new char[128];
WAVEHDR WaveHead;
WaveHead.lpData=(LPSTR)wh_data;
WaveHead.dwBufferLength=WAVEOUT_BUFFER_LENGTH;
WaveHead.dwFlags=0L;
WaveHead.dwLoops=0L;
if(MMSYSERR_NOERROR!=waveOutPrepareHeader((HWAVEOUT)hwo,&WaveHead,sizeof(WAVEHDR)))
{
//return Close();
;//int a = 100;
}
if(MMSYSERR_NOERROR!=waveOutWrite((HWAVEOUT)hwo,&WaveHead,sizeof(WAVEHDR)))
{
//return Close();
;//int a = 100;
}


waveOutOpen,waveOutPrepareHeader,waveOutWrite的返回值都没有错误,为什么听不到声音。
...全文
222 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hideforever 2011-04-12
你的wh_data中确定是正确的声音数据?
回复
LiuYinChina 2011-04-12
http://download.csdn.net/source/3184342
回复
信阳毛尖 2010-10-22
你把WaveHead.dwFlags=0L改为
WaveHead.dwFlags=WHDR_BEGINLOOP | WHDR_ENDLOOP 试试呢
回复
傻X 2010-10-22
没玩过wave,帮顶下
回复
ouyh12345 2010-10-22
waveOutProc呢?声音采集后,数据应该在这个函数里处理
回复
modyaj 2010-10-22
这么就没见脚印 原来是代码长哦 顶
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2010-10-22 01:53
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……