音频采集,压缩,传送,播放,问题讨论(付简单思路)

chen_jun_fen 2002-09-19 02:49:34
waveInOpen按一定格式打开设备,

waveInPrepareHeader
waveInAddBuffer

把buffer与设备关联.当buffer中数据满的时候的,
响应消息MM_WIM_DATA
我是否可以在此消息相应里可以处理buffer中的数据?
waveInUnprepareHeader 参数中是否包括了音频数据,是否是真正我想要的数据?
然后在通过下面两个函数把空的buffer关联设备,
waveInPrepareHeader
waveInAddBuffer
其中,我是否可以在消息MM_WIM_DATA里面把数据发送到客户端.

然后我是否可以按照同样的方法可以把收到的数据直接
waveOutWrite
欢迎各位讨论,目的是想把这几个过程弄的更明白点
...全文
695 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jarky 2002-10-02
  • 打赏
  • 举报
回复
up !!!
webwonder 2002-09-30
  • 打赏
  • 举报
回复
动态JITTER BUFFER 和 回音消除 、丢包差错处理大家有没有做过?请帮忙给SOURCE CODE参考
webwonder@21cn.com
capboy 2002-09-30
  • 打赏
  • 举报
回复
http://www.csdn.net/cnshare/soft/12/12056.shtm
带视频的...界面非常不错.
capboy 2002-09-30
  • 打赏
  • 举报
回复
csdn有现成的代码
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
我现在
waveInOpen , waveOutOpen
之后,用
waveOutReset , waveInReset
waveOutClose , waveInClose
发现会出错,是不是缓冲区没有释放的缘故
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
我现在
waveInOpen , waveOutOpen
之后,用
waveOutReset , waveInReset
waveOutClose , waveInClose
发现会出错,是不是缓冲区没有释放的缘故
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
谁能贴一段网络传输代码出来,参考参考.
czb99 2002-09-24
  • 打赏
  • 举报
回复
TO VisualStudio(嗷~~~):
我也没有什么好方法,就是用个数组表示,在用个int变量表示当前循环道那个地方了,当到最大值时置0,重新计数。不知你们有什么更科学的方法。
hapcoer 2002-09-24
  • 打赏
  • 举报
回复
to Daio
你说的网址是什么呀
demonking 2002-09-24
  • 打赏
  • 举报
回复
up
phoenix3 2002-09-24
  • 打赏
  • 举报
回复
up
phoenix3 2002-09-24
  • 打赏
  • 举报
回复
up
VisualStudio 2002-09-24
  • 打赏
  • 举报
回复
to chen_jun_fen(bitwise)
在'音量控制'设置中,将播放中的麦克风静音,就可去掉杂音
learn and attention and up
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
有杂音是wave设置不当,还是socket设置不当,
该怎么设置才能避免杂音,
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
好阿,我已经加了,
我的是chenjf1222@hotmail.com
VisualStudio 2002-09-24
  • 打赏
  • 举报
回复
加我MSN: aftertime@hotmail.com
我们可以交流一下,我做音频也是吃了不少苦头的。
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
还又一个问题:
缓冲区满了,我要关闭设备,应该怎样把缓冲区释放.
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
声明一下:
m_hPlay是设备句柄,
waveOutErrorMsg是自定义的一个函数.用来显示出错信息.
chen_jun_fen 2002-09-24
  • 打赏
  • 举报
回复
还有一个问题,今天我发现我打开的设备,到后来关掉的时候会程序死掉,关不了设备了,
我是这样写的:
MMRESULT mmReturn = 0;

if(m_bPlaying)
{
m_bPlaying = FALSE;
mmReturn = ::waveOutReset(m_hPlay);
if(mmReturn)
{
waveOutErrorMsg(mmReturn, "in stop()");
TRACE("waveOutReset()\n");
return FALSE ;
}
else
{
mmReturn = ::waveOutClose( m_hPlay ) ;
if ( mmReturn )
{
waveOutErrorMsg( mmReturn , "in close()" ) ;
return FALSE ;
}
}
}
return TRUE ;
VisualStudio 2002-09-24
  • 打赏
  • 举报
回复
yes
加载更多回复(39)
高性能的可视电话软件 NetTalk效率很高,比我所见的一些可视通话软件要好(如AVPHONE,注:在此并无破坏AVPHONE所在公司形象之意图,仅将软件作客观上的比较) AVIOMgr模块 AVIOMgr是一个可视通信的通用模块,在NetTalk中是一个独立的模块,对它进行一些简单的处理,可以做成静态库、动态库或ActiveX控件,以用于其他软件。 AVIOMgr封装了包括:视频采集、视频压缩音频采集音频压缩音频播放、数据传输、命令控制等一系列与可视通讯有关的功能 分网络传输部分、音频输入、音频输出、视频输入、视频输出、音频视频压缩音频波形显示、界面。共创建个线程,音频输入线程、音频输出线程(这两个有WINAPI隐式创建)、音频视频压缩传送线程和主线程。因为音频的采样率比视频采样率高得多,这里的音频的采样率为8000Hz而视频仅为20左右,所以从宏观来看,音频是连续的,而视频是非连续的,这也就是无须为视频输入输出创建独立线程的原因。 网络传输:基于UDP协议,有两组SOCKET,一组用于指令发送和接受(要求可靠),另一组负责音频视频数据的传送和接受(不保证可靠性)。 音频输入:通过waveIn函数族完成连续的录音 音频输出:通过waveOut函数族完成连续的放音 视频输入:通过cap函数族对视频进行捕获 视频输出:通过cap函数族实现视频输出 音频视频压缩音频压缩采用G.729标准(8:1,1kbps),视频压缩采用H.263+标准 音频波形显示:将PCM音频数据以波形动态地显示出来 界面:与用户交互

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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