有关DirectSoundFullDuplexCreate8的问题

    有关DirectSoundFullDuplexCreate8的问题
 
    在WINXP平台我使用操作系统的AEC和NS,用DirectSoundFullDuplexCreate8来初始化对象。但在一台笔记本上发现在调用DirectSoundFullDuplexCreate8这个API时会需要几分钟时间,可能是软件冲突,对音频采集播放设备的占用冲突,也有可能这个buffer被其它程序LOCK住了。我试着换用DSSCL_PRIORITY, DSSCL_NORMAL, DSSCL_EXCLUSIVE参数和其它参数都不行。只有在DirectSoundFullDuplexCreate8去掉AEC和NS功能才可以。


     仔细观察这台笔记本的软件环境,并在另一台机器上搭建同样的平台但问题不能重现。折腾了一整天,也没结果,真是令人沮丧,MSDN也没说明有这种情况,不知网上有那位大侠能给个解释。这个API要么返回错误,要么返回正常,什么能那它堵住几分钟呢!!!!     


     解决方法只有启线程来调用DirectSoundFullDuplexCreate8,检测到超时后去掉AEC和NS再初始化。这样来保证主线程不会堵死。
    
     WINXP的AEC和NS真是个好东西,但使用时也要小心,因为WINDOW的软硬件环境太复杂了。软件在某台机器功能正常不代表所有机器都能正常运行。
    
     这个问题WINDOW7就能很好解决,因为它提供的接口更高层更安全,并且AEC和NS的较果更好,WIN7在媒体处理上还提供的更多更强大的功能,做开发的人才能真感到WIN7相比WINDOWS以前版本的好处。真是外行看热闹,内行看门道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值