DirectSound折腾记之二
来源:互联网 发布:海洋cms手机模板 编辑:程序博客网 时间:2024/06/04 19:53
DirectSound折腾记之二
找到有节奏的“突突”杂音的步骤:
1、先把收到的音频数据放到一个大的缓存(比如:可保存10秒的音频)
2、然后直接播放缓存里的数据,发现音频很流畅干净,说明杂音是播放过程中产生
解决思路:
利用Notify对象实现播放位置的通知,不断更新播放缓冲(SecondaryBuffer)里的音频数据。
不过很可惜,结果是失败的,在设置通知的时候:
//设置通知
myNotify2 = new Notify(secBuffer);
总会产生”值不在预期范围内“的异常,据说是DirectX中的BUG,微软也撒手不管了,只好另想3招:
1、另起线程,不断检测SecondaryBuffer的播放位置PlayPosition,发现该线程占用CPU太过分,此招作废。
2、收到播放端发送过来的数据时,检测播放位置PlayPosition,发现检测频率太低,受制于数据接收的速度。
3、使用Timer,定时检测播放位置PlayPosition,此招为前2招的折衷,采用。
另外:为了实现平滑播放,对音频数据进行了合并和扩充,效果还比较理想。
对于回声的问题,时间紧迫,暂时没有解决。
- DirectSound折腾记之二
- DirectSound折腾记之一
- xml直接生成界面之折腾二
- DirectSound
- DirectSound
- DirectSound
- directsound
- DirectSound
- DirectSound
- DirectSound
- DirectSound
- DirectSound
- DirectSound学习指南之协作级别
- 游戏编程之五 DirectSound
- 二白的Ubuntu“触碰之旅”体验折腾
- DirectSound学习(二)--流式缓冲区
- Django折腾记之启动定时任务
- 数组大折腾【二】
- Android中定时器的使用
- CString 操作指南
- LINUX CP命令详解
- 单例模式完全解析
- IK 分词 源码分析 之 分词流程解析
- DirectSound折腾记之二
- 确定比赛名次
- 原码 补码 反码 移码
- firefox支持的滤镜
- 新浪微博的不爽设定
- glViewPort,glOrtho与视见区,修剪区间
- 关于网络的总有一天
- firefox和IE都支持的半透明
- Java中path与classpath的区别。