社区
硬件/系统
帖子详情
如何通过声卡获取输入音频(单频)的频率、幅度
xmxjh
2005-07-02 04:08:31
搜了前面的贴子,都只讲了如何录放音、控制音量。
请各位讲解一下获取指定频率的幅度如何实现?
...全文
475
5
打赏
收藏
如何通过声卡获取输入音频(单频)的频率、幅度
搜了前面的贴子,都只讲了如何录放音、控制音量。 请各位讲解一下获取指定频率的幅度如何实现?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xmxjh
2005-07-23
打赏
举报
回复
需没达到预期的效果,但任务可以完成了,感谢两位
taianmonkey
2005-07-10
打赏
举报
回复
声音的强弱参考:
DXSDK\Samples\C++\DirectShow\Filters\WavDest
taianmonkey
2005-07-10
打赏
举报
回复
HMMIO m_hmmio;
MMCKINFO m_MMCkInfoParent;
WAVEFORMATEX m_PCMWaveFmtRecord;
MMCKINFO m_MMCkInfoChild;
TCHAR bigBuff[2048] = ""; // maximum common dialog buffer size
TCHAR szFilter[] =
"Text Files (*.wav)|*.wav|All Files (*.*)|*.*||";
//TCHAR csFileName[MAX_PATH];
//CString csFileName;
CString m_strFilePath;
CString strWaveInformation;
CString szExtFile;
CFileDialog dlg(TRUE, NULL, NULL,
OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, szFilter);
// Modify OPENFILENAME members directly to point to bigBuff
dlg.m_ofn.lpstrFile = bigBuff;
dlg.m_ofn.nMaxFile = sizeof(bigBuff);
if(dlg.DoModal() == IDOK)
{
m_strFilePath = dlg.GetPathName();
}
else
return;
m_hmmio = mmioOpen((LPSTR)(LPCTSTR)m_strFilePath,NULL,MMIO_READ);
if(!m_hmmio)
{
AfxMessageBox("unable to open Sound MM File");
return ;
}
m_MMCkInfoParent.fccType = mmioFOURCC('W','A','V','E');
int errorCode = mmioDescend(m_hmmio, &m_MMCkInfoParent,NULL,MMIO_FINDRIFF);
if(errorCode)
{
AfxMessageBox("Error descending into file");
mmioClose(m_hmmio,0);
m_hmmio = NULL;
return ;
}
m_MMCkInfoChild.ckid = mmioFOURCC('f','m','t',' ');
errorCode = mmioDescend(m_hmmio,&m_MMCkInfoChild,&m_MMCkInfoParent,MMIO_FINDCHUNK);
if(errorCode)
{
AfxMessageBox("Error descending in file");
mmioClose(m_hmmio,0);
m_hmmio = NULL;
return ;
}
DWORD bytesRead = mmioRead(m_hmmio,(LPSTR)&m_PCMWaveFmtRecord,m_MMCkInfoChild.cksize);
if(bytesRead < 0)
{
AfxMessageBox("Error reading PCM wave format record");
mmioClose(m_hmmio,0);
return ;
}
strWaveInformation.Format("wFormatTag = %d , nChannels = %d, nSamplesPerSec = %d, nAvgBytesPerSec = %d, nBlockAlign = %d, wBitsPerSample = %d, cbSize = %d",
m_PCMWaveFmtRecord.wFormatTag, m_PCMWaveFmtRecord.nChannels,
m_PCMWaveFmtRecord.nSamplesPerSec ,m_PCMWaveFmtRecord.nAvgBytesPerSec ,
m_PCMWaveFmtRecord.nBlockAlign, m_PCMWaveFmtRecord.wBitsPerSample,m_PCMWaveFmtRecord.cbSize);
AfxMessageBox(strWaveInformation);
mmioClose(m_hmmio,0);
xmxjh
2005-07-10
打赏
举报
回复
感谢两位,我看看文档
xmxjh
2005-07-07
打赏
举报
回复
比较偏门
声卡
正弦波
音频
信号发生器
声卡
正弦波
音频
信号发生器,可以产生正弦波,
频率
可以自由调节
声卡
虚拟示波器万用表
频率
计信号发生器
声卡
虚拟示波器,利用
声卡
实现万用表,
频率
计,信号发生器
数字
音频
技术知识点及
声卡
驱动
PCM是Pulse code modulaTIon的缩写,它是对波形最直接的编码方式。它在
音频
中的地位可能和BMP在图片中的地位有点类似吧。
声卡
音频
发生器软件
声卡
音频
发生器软件,可以模拟常规信号发生器产生测试音
虚拟仪器(
声卡
作
输入
)
虚拟仪器(
声卡
作
输入
),可以用电脑作为一个高级示波器,只要自己制作一条采集线就可以,内附有说明书
硬件/系统
2,644
社区成员
17,232
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章