有关DirectSoundFullDuplexCreate8的问题

DirectSound实时音频播放与采集源码实战解析 DirectSound作为Windows平台底层音频API的核心组件,广泛应用于游戏音效、语音通信和多媒体播放等对低延迟有严苛要求的场景。本章将系统阐述DirectSound的技术定位及其在实时音频处理中的关键作用,剖析其相较于WaveOut、WASAPI等其他音频接口的优势与局限。重点介绍双工模式下的播放与采集同步机制,揭示硬件抽象层如何通过缓冲区管理实现高效数据流转。 阅读详情

    有关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以前版本的好处。真是外行看热闹,内行看门道。

带回声消除功能的DirectSound音频采集 采用directsound的DirectSoundFullDuplexCreate8创建全双工音频采集,启用AEC效果,让采集出的声音没有回声,即音频通话中的回声消除效果,全双工音频的启用在windowsXP下可用,若系统有声音输出,aec将会失败,启用aec后,系统声音才变为16KHz,1Channel输出。运行测试程序时选择好输入和输出设备,然后点击record,再在电脑中播放一个音乐。录制出来的声音将只有麦克风声音,而播放的音乐声被消除了。 该资源仅在windows xp上可用,vista及以上版本directsound不再支持该特性。vista及以上系统请移步至windows core audio方式的,启用AEC回声消除效果的音频采集参考代码:http://download.youkuaiyun.com/detail/xuwei17385/6426783。 立即下载

相关推荐

用DirectSound实现声音的实时采集、处理与播放

用DirectSound实现声音的实时采集、处理与播放

解决“Directsound不能初始化”

解决“Directsound不能初始化” 偶然间玩某游戏,电脑不能正常运行,废了一番功夫,基本上找到的方法都未能解决。无意间以这种方式解决。甚喜,再次分享大家。以某品牌电脑为例。如出现此问题需要打开控制面板。找到音频选项。(需要注意的是不是声音选项,而是音频高级选项) 打开音频高级选项后,点击箭头所示。 如图所示 然后,游戏就不会在提示Directsound不能初始化。 ...

weixin_52045829的博客 2万+

LightTools宏 vs Python API:光学仿真自动化方案选型指南

本文深入对比了LightTools光学仿真自动化中VBA宏与Python API两种方案。VBA宏内嵌易用,适合固定流程批处理;Python API生态强大,尤其在参数优化算法集成方面优势显著,便于构建复杂工作流。文章结合案例,为不同场景下的技术选型提供清晰指南。

garlic的博客 940

最简单的视音频播放示例8:DirectSound播放PCM

本文记录DirectSound播放音频的技术。DirectSound是Windows下最常见的音频播放技术。目前大部分的音频播放应用都是通过DirectSound来播放的。本文记录一个使用DirectSound播放PCM的例子。注:一位仁兄已经提醒我DirectSound已经计划被XAudio2取代了。后来考证了一下发现确有此事。因此在下次更新中考虑加入XAudio2播放PCM的例子。本文仍然记录

雷霄骅(leixiaohua1020)的专栏 3万+

基于IC617下Layout XL的使用

基于IC617下Layout XL的使用

weixin_43816759的博客 1万+

【科研学习】Demo3D2015安装包以及图文安装步骤

安装包 点击下图的.exe文件,安装 不需要解压,打开注册机 如下图: 点击上图的.exe文件,出现下图 先点击 patch 打开安装目录下的Demo3D.licensing.dll文件,然后点击Generate,生成dvt-license文件,保存即可 打开安装完成的Demo3D 2015(64-bit),一般破解没完成的,会出现一个request a license 的问题,点击find license 的那一行 点击后找到自己Generate,生成dvt

KaelCui的博客 1万+

IDirectSound8::CreateSoundBuffer要记得释放

如果持续使用IDirectSound8::CreateSoundBuffer创建缓冲区,播放声音,但是不释放缓冲区。这样会导致所有函数都执行成功,但是某些声音播放不出来!最好的办法就是等声音播放结束立刻释放缓冲区。像以前那样创建缓冲区播放声音后,就永远不释放内存的做法是错的。网上同样的问题如下:http://bbs.gameres.com/showthread.asp?threadid=129171   看13楼http://www.codeguru.com/forum/showthread.php?t=2

brook0344的专栏 4719

QMT与聚宽策略代码对接实战:Redis信号传递与xtquant交易实现

本文详细介绍了如何将聚宽策略代码与本地QMT终端进行高效对接的实战方案。通过利用Redis Stream构建可靠信号通道,解决了云端信号到本地执行的延迟与丢失问题,并结合xtquant库实现自动化交易执行。文章重点阐述了信号封装、资金映射、异步下单、风控检查及独立资金管理等核心环节,为量化交易者搭建自主可控的实盘系统提供了完整路径。

lilh34434的博客 473

波形捕捉:(2)创建捕捉设备对象

 创建“捕捉设备对象”       你可以通过调用 DirectSoundCaptureCreate8 或 DirectSoundFullDuplexCreate8 函数来创建一个捕捉设备对象。这两个函数都获取一个指向IDirectSoundCapture8 接口的指针。      DirectSoundCaptureCreate 的lpcGUID参数或 DirectSoundFullDupl

wlch4712的专栏 727

[Python]:热血传奇-Wzl,Wzx的解析

首先我们要了解,wzl与wzx的对应关系,wzx里面存的是每张二进制图片数据在wzl中的偏移量,所以取到wzx中的偏移数据就可以取到wzl每张图片数据,其实就这么简单。结构体为 [Byte][Byte][Byte][Byte][short][short][short][short][int]-读取44至48字节代表为,[wzx中偏移值总数量] [int类型] [4字节]-根据在wzx中取得的偏移值总数量,每张图片偏移值在wzl中取图片数据。2.[取wzl中图片偏据]:根据wzx中取得数据对[

qq_36138506的博客 3452

第五章 TTM 后备管理:5.6系统内存域

系统内存域由 TTM 内置资源管理器管理,通过 ttm_tt 承载页信息,依赖 ttm_pool 提供物理页。ttm_tt 管理页数组、缓存属性与状态标志,支持外部页与换出机制。初始化分 ttm_tt_init 与 ttm_sg_tt_init,生命周期包括创建、填充、释放与销毁。页池针对 write-combined、uncached 及一致性 DMA 分配的页进行缓存,提升性能并减少 TLB 刷新。分配时高阶优先、批量设置缓存属性,回收时清零后归还池中,确保高效复用。

图形/计算GPU的驱动与虚拟化技术分享园地 2569

DirectSound学习笔记(2):创建设备对象

创建设备对象创建设备对象最简单的方式是使用 DirectSoundCreate8 函数。函数的第一个参数指定了与对象关联的设备的GUID。你能够通过枚举设备获取这个GUID,也可以传递以下GUID中的一个来指定一个默认设备。 GUID 定义

pyundeng(胖头云)的专栏 2503

【实战圣经】YOLOv8-pose姿态估计模型从训练到RK3588部署:让边缘端骨骼识别速度突破60FPS

本教程从“模型训练-转换-边缘部署”全链路拆解了YOLOv8-pose姿态估计方案在RK3588上的落地过程,每一步都经过实战验证。无论是智能健身的动作实时纠正,还是工业设备的关键部件姿态检测,这套流程都能让你以最低成本实现高精度、高实时性的姿态估计应用。如果你在实践中遇到模型转换报错、部署性能不达标等问题,可聚焦某一环节深入优化——毕竟,让AI在边缘端“精准捕捉每一个关键点”,才是技术驱动场景创新的核心。

m0_71589036的博客 251

DirectSound录音的基本流程

DirectSound录音的基本流程 1.枚举系统录音设备,调用DirectSoundCaptureEnumerate函数; 2.创建设备对象,调用DirectSoundCaptureCreate8或DirectSoundFullDuplexCreate8函数可直接创建; 3.获取录音设备的性能,调用IDirectSoundCapture8::GetCaps方法; 4.创建录音缓冲区,调用

游行天涯 3万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

波形捕捉:(1)枚举"捕捉设备"

 枚举"捕捉设备"后在网上找到类似翻译:DirectSound学习笔记(1):枚举声音设备  作者:pyundeng而且作者是在06年发表的,哎~~~犹豫了半天是否有必要继续翻译下去,最后打算还是继续写吧。就当做练英文好了。刚刚又搜了下博客圆,没有发现类似文章,所以更坚定要继续写下去。大家可别怀疑我只是复制粘贴哦,我可是一字一句翻译出来的,当然也会参考一些已有的资料。      如果你的应用程

wlch4712的专栏 500

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

老游戏音频增强终极指南:用DSOAL让DirectSound时代游戏重获环绕声与EAX音效

你有没有过这种经历:翻出一款二十年前的神作,画面还能忍,但声音"平"得让人想关游戏——枪声没有方向感,脚步声分不清前后,明明游戏里开了"环绕声"选项却毫无变化?别急着骂游戏厂商。**DSOAL** 这个音频增强项目,正是为破解这类"老游戏变聋"困局而生的:它用一份DLL替身,把DirectSound时代的游戏音频翻译给现代音频引擎OpenAL Soft处理,让环绕声、HRTF和EAX音效在老游戏里

gitblog_00349的博客 394

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

AEC (Acoustic Echo Canceller) 回音消除初探

AEC回声抑制算法,这个比较难,目前可以使用directsound进行处理,不过只能在xp下使用,别的系统不支持!目前gips对本算法有出色的实现,skype就是使用的该引擎!要想自己实现,恐怕很困难! AEC 模块是 Microsoft DirectSound 底层结构的一部分。该组件包括下列特性和限制:AEC只在不超过 25×15×9 英尺的小房间才会有效; AEC只对单声道有效,当输

8052

利用DirectSound实现录音

在开始工作之前,要先介绍DirectSound录音用到的三个非常重要的对象, IDirectSoundCapture8 ,设备对象,根据你录音的设备创建的设备对象,利用该对象可以获取设备的属性。 IDirectSoundCaptureBuffer8,缓冲区对象,该对象由设备对象创建,主要用来操作音频数据 IDirectSoundNotify8 ,事件通知对象,该对象用来通知应用程序从缓冲区中

u011643157的专栏 766
上一篇: DVI,HDMI接口显示器无显示的解决
下一篇: BT中国联盟被关闭
marchbirdcode
博客等级 码龄17年 11粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值