最近广州大雨不断,并且多数无前兆,突然就来场大雨,给同学们降降温,说来本也是好事,但有时候下的真不是时候,最近这段时间都是即将下班了,大雨就来了,昨晚快下班前又出现了大雨,北方人总爱忘带雨伞,这不就被堵在公司回不了家了。

正在盘算如何回家的空档,有同事来我的座位咨询:音频输出给音频播放设备后音频低层(OS或驱动层)处理会主动丢失先前通过调用waveOutWrite提交的待播放音频数据吗?通过记录输出给音频设备的音频数据到PCM文件A,同时将采集回来的音频数据记录到PCM文件B,在客户机性能消耗并不高的情况下发现B中记录的音频数据比A中在中间部位少了一小段。因为这个直播推流客户端最初版本是我开发的,对整个音频处理流程是知道的,然后结合Audacity音频波型分析与同事的新加功能的描述,快速将问题锁定到DShow音频采集的DoRenderSample(来自CBaseRenderer的接口函数),因为这个函数是DShow框架控制的采集线程执行的,印像中DShow参考资料上说不要在这个函数中执行高耗时操作,否则视频采集达不到预设的帧率,这样看来音频也存在同样的问题,通过尽一步与同事沟通发现,同事在DoRenderSample中调用了回声消除相关的一些函数,并且这些函数还处于开发中,目前并不太稳定,有可能偶尔出现长时间运算而不返回。至此问题原因得以定位。解决方法:1 起新的线程专门完成回声消除任务 2 在编码线程中执行编码逻辑前完成回声消除。

一定记住了:DShow音频采集的DoRenderSample接口函数中不要执行高耗时逻辑。

DirectShow音频采集声音不连续问题分析与解决办法经验总结的更多相关文章

  1. JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法

    今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...

  2. php中session_start()相关问题分析与解决办法

    介绍下,在php中使用session时遇到的一些问题,与相关解决方法.1.错误提示Warning: Cannot send session cookie - headers already sentW ...

  3. oracle执行update语句时卡住问题分析及解决办法

    转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...

  4. selenium元素定位不到问题分析及解决办法

    最近正在学习写自动化测试脚本,遇到一个错误迟迟未解决,导致自信心大受挫败,甚至想放弃. 思考许久突然想到,我遇到的问题是否也有人会遇到,如果有的话问题就应该有解决办法了.没什么问题是百度解决不了的,如 ...

  5. Nested Loops join时显示no join predicate原因分析以及解决办法

    本文出处:http://www.cnblogs.com/wy123/p/6238844.html 最近遇到一个存储过程在某些特殊的情况下,效率极其低效, 至于底下到什么程度我现在都没有一个确切的数据, ...

  6. 1.Android常见异常:android.view.WindowLeaked 分析以及解决办法

    在项目中遇到WindowManager: Activity  has leaked window问题,其实在stackoverflow.com可以找到详细答案:http://stackoverflow ...

  7. 服务器CPU使用率高的原因分析与解决办法

    我们的服务器在使用操作系统的时候,用着用着系统就变慢了,打开“ 任务管理器 ”一看,才发现CPU使用率达到80%以上.这是怎么回事情呢?遇到病毒了吗?硬件有问题?还是系统设置有问题呢?在本文中将从硬件 ...

  8. Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在游戏App中为了衬托气氛我们往往使用一些特殊的图形效果,粒子 ...

  9. VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误

    1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...

随机推荐

  1. java中的URL InetAddress类

    /* * InetAddress类: * 用于标识网络上的硬件资源,表示互联网协议(ip)地址,是java对ip地址的封装. * 其实例对象包含以数字形式保存的IP地址,主机名. * InetAddr ...

  2. Java:注解(Annotation)自定义注解入门

    转载地址:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的 ...

  3. 🐒-mysql(1)

    Mac 终端启动mysql 本文下载的mysql版本为:5.7.17.MySQL Workbench版本为:5.2.47(后面会提及如何选择下载版本) 一.下载MySQL 1.1.访问http://w ...

  4. md5证书在window2012不能访问

    之前在window 2008使用makecert的产生的证书,部署到window 2012后,发现只有IE能访问,但是Firefox和chrome都不行.Firefox可以使用about:config ...

  5. 网站引导页flash动画跳转js脚本

    if (getCookie("guidance") == null) { document.cookie = "guidance=true"; window.l ...

  6. opencv3.1自带demo的介绍和运行操作。转载

    opencv3.1自带demo的介绍和运行操作. 下列实验基本都试过,有些需要根据自己的电脑修改一些路径或者调试参数. 值得注意的是,控制台程序输入有时候要在图像所在的窗口输入相应的指令.我的电脑上安 ...

  7. Windows Server 2008 如何在IIS中添加MIME类型

    用户可以通过使用MIME以设置服务器传送多媒体文件,如声音和视频等.MIME是一种技术规范,现在可以用于浏览器上,传送可以供浏览器识别的信息 如果我们的网站提供下载服务,有时传上去的文件比如 xxx. ...

  8. JQuery常用API 核心 效果 JQueryHTML 遍历 Event事件

    JQuery 常用API 参考资料:JQuery 官网   jQuery API 中文文档 核心 jQuery 对象 jQuery() 返回匹配的元素集合,无论是通过在DOM的基础上传递的参数还是创建 ...

  9. [Rails] 从 Request 到 Response(2)

    本文翻译自:Rails from Request to Response 系列:个人选择了自己感兴趣的部分进行翻译,需要阅读原文的同学请戳前面的链接. 第二部分 路由(Routing) Blog::A ...

  10. python zipfile 文件压缩和文件

    文件压缩 zipfile_obj = zipfile.ZipFile(zipfile_objpath, 'a', zipfile.ZIP_DEFLATED) for dirpath, dirnames ...