waveInOpen函数莫名其妙的错误
头文件定义:
private:
HWAVEIN m_hWaveIn; //输入设备
WAVEFORMATEX m_waveform; //采集音频的格式,结构体
CPP:
m_waveform.wFormatTag = WAVE_FORMAT_PCM; //声音格式为PCM
m_waveform.nSamplesPerSec = SAMPLESPERSRC_44100; //采样率,16000次/秒
m_waveform.wBitsPerSample = 16; //采样比特,16bits/次
m_waveform.nChannels = 1; //采样声道数,2声道
m_waveform.nAvgBytesPerSec = SAMPLESPERSRC_44100 * 2; //每秒的数据率,就是每秒能采集多少字节的数据
m_waveform.nBlockAlign = 2; //一个块的大小,采样bit的字节数乘以声道数
m_waveform.cbSize = 0; //一般为0
//使用waveInOpen函数开启音频采集
MMRESULT mmr = waveInOpen(&m_hWaveIn,WAVE_MAPPER,&m_waveform,
(DWORD)(MicCallback), DWORD(this), CALLBACK_FUNCTION);
if(mmr != MMSYSERR_NOERROR)
return false;
当运行到 waveInOpen这个函数的时候,程序直接报错。如图,可以保证在window xp下绝对是可以用的,现在的开发环境是window8,请高人帮忙解答下,万分感谢!

private:
HWAVEIN m_hWaveIn; //输入设备
WAVEFORMATEX m_waveform; //采集音频的格式,结构体
CPP:
m_waveform.wFormatTag = WAVE_FORMAT_PCM; //声音格式为PCM
m_waveform.nSamplesPerSec = SAMPLESPERSRC_44100; //采样率,16000次/秒
m_waveform.wBitsPerSample = 16; //采样比特,16bits/次
m_waveform.nChannels = 1; //采样声道数,2声道
m_waveform.nAvgBytesPerSec = SAMPLESPERSRC_44100 * 2; //每秒的数据率,就是每秒能采集多少字节的数据
m_waveform.nBlockAlign = 2; //一个块的大小,采样bit的字节数乘以声道数
m_waveform.cbSize = 0; //一般为0
//使用waveInOpen函数开启音频采集
MMRESULT mmr = waveInOpen(&m_hWaveIn,WAVE_MAPPER,&m_waveform,
(DWORD)(MicCallback), DWORD(this), CALLBACK_FUNCTION);
if(mmr != MMSYSERR_NOERROR)
return false;
当运行到 waveInOpen这个函数的时候,程序直接报错。如图,可以保证在window xp下绝对是可以用的,现在的开发环境是window8,请高人帮忙解答下,万分感谢!

...全文
相关推荐
PCMRecorder_录音_pcm_waveInOpen_
在实际应用中,还需要考虑错误处理、同步问题以及用户界面设计等多方面因素,以提供良好的用户体验。
C++ 实现麦克风的录制 及其播放
在实际开发中,需要注意错误处理和线程安全,确保程序的稳定性和可靠性。
C++ MFC 录音程序
**使用waveInOpen**:在程序中调用waveInOpen函数,设置录音设备,配置录音参数,如采样率、位深度和通道数。3.
vb录音程序源代码1
**waveInOpen**:这个API函数用于打开一个输入设备,比如麦克风,为录音做准备。需要指定设备ID、回调函数、缓冲区大小等参数。3.
Windows Mobile (PPC) 下的录音和播音程序,有源代码
**waveInOpen**:这是用于打开输入设备进行录音的函数。你需要指定一个设备ID,设备属性,回调函数,用户数据和错误处理模式。


