在VC中怎样将声音转为声音的波形文件?并有图形输出.

zrt12 2004-09-09 10:13:10
在VC中怎样将声音转为声音的波形文件?并有图形输出.
...全文
310 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
msvbvm60 2004-10-10
  • 打赏
  • 举报
回复
用 控件就可以拉。。。
zrt12 2004-10-05
  • 打赏
  • 举报
回复
我的Email:zrt12@21cn.com发一份给我,谢谢!
fastxyf 2004-10-03
  • 打赏
  • 举报
回复
http://www.codeguru.com/Cpp/G-M/multimedia/audio/article.php/c4739/
a Class for Working with and Representing Data from WAVEs
zhouhua206 2004-09-30
  • 打赏
  • 举报
回复
楼上的朋友可以发给我一份么,我想知道
我的 Email: zhouhua206@163.com
sonyE888 2004-09-30
  • 打赏
  • 举报
回复
我的毕业设计中的一项就是将wav文件的波形绘制出来,如果你需要的话留个mail,可以把部分源码发给你参考一下+_-
Mr-Chen 2004-09-30
  • 打赏
  • 举报
回复
关注!
nwpulipeng 2004-09-27
  • 打赏
  • 举报
回复
帮顶混分啦
不太明白
HickMars 2004-09-25
  • 打赏
  • 举报
回复
去查一下你要用的音频文件具体格式就知道了
zrt12 2004-09-20
  • 打赏
  • 举报
回复
帮帮忙,各位!
zhouhua206 2004-09-13
  • 打赏
  • 举报
回复
怎么没有人回复啊?顶一下
zhouhua206 2004-09-11
  • 打赏
  • 举报
回复
波形流的数据怎么读取以判断波形振幅?学习学习
huwei001982 2004-09-11
  • 打赏
  • 举报
回复
读取波型流的数据, 自已画的线条
zrt12 2004-09-11
  • 打赏
  • 举报
回复
不是录音程序,是电脑里已经存在的声音文件或录入的声音文件转成可以看到的波形文件,Cool Edit pro软件就可以,但在VC里怎样实现.
howtotell 2004-09-10
  • 打赏
  • 举报
回复
http://www.codeguru.com/Cpp/G-M/multimedia/
可惜是英文的。
zhouhua206 2004-09-10
  • 打赏
  • 举报
回复
你是说录音么?
录音程序容易写,我写有Delphi的代码,不过Delphi和VC下都是同样实现
调用API就可以了,MSDN上对各个函数都有说明

基本流程是:
打开录音设备函数
MMRESULT waveInOpen( LPHWAVEIN phwi, //输入设备句柄
UINT uDeviceID, //输入设备ID
LPWAVEFORMATEX pwfx, //录音格式指针
DWORD dwCallback, //处理MM_WIM_***消息的
//回调函数或窗口句柄、 线程ID等
DWORD dwCallbackInstance,//通常为0
DWORD fdwOpen //处理消息方式的符号位 );

为录音设备准备缓存函数
MMRESULT waveInPrepareHeader( HWAVEIN hwi, LPWAVEHDR pwh, UINT bwh );

给输入设备增加一个缓存
MMRESULT waveInAddBuffer( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh );

开始录音
MMRESULT waveInStart( HWAVEIN hwi );

清除缓存
MMRESULT waveInUnprepareHeader( HWAVEIN hwi,LPWAVEHDR pwh, UINT cbwh);

停止录音
MMRESULT waveInReset( HWAVEIN hwi );

关闭录音设备
MMRESULT waveInClose( HWAVEIN hwi );

相关消息 
MM_WIM_OPEN:打开设备时消息,在此期间我们可以进行一些初始化工作
MM_WIM_DATA:当缓存已满或者停止录音时的消息,处理这个消息可以对缓存进行重新分配,
实现不限长度录音
MM_WIM_CLOSE:关闭录音设备时的消息。
//-----------------------------------
相对于录音来说,回放就简单的多了,用到的函数主要有以下几个:
打开回放设备 
MMRESULT waveOutOpen( LPHWAVEOUT phwo,
UINT uDeviceID,
LPWAVEFORMATEX pwfx,
DWORD dwCallback,
DWORD dwCallbackInstance, DWORD fdwOpen );

为回放设备准备内存块 
MMRESULT waveOutPrepareHeader( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh );

写数据(播放) 
MMRESULT waveOutWrite( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh );

相应的也有三个消息,用法跟录音的类似:
MM_WOM_OPEN:打开设备时消息,在此期间我们可以进行一些初始化工作
MM_WOM_DONE:当缓存已播放完毕或者停止播放时的消息,
处理这个消息可以对缓存进行重新分配,实现不限长度播放
MM_WOM_CLOSE:关闭播放设备时的消息。
//---------------------------------------------------------------
至于其中的数据结构如WAVE文件头部结构LPWAVEFORMATEX等
在查看MSDN的时候顺带看看相信很容易就能明白

不过同步绘制波形我就没有试过,关注一下

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧