急,请教DirectSound编程

bluestar 2002-01-22 02:35:10
不知道谁有《DirectSound从入门到精通这本书的配套光盘》,小弟把这张光盘搞丢了,现在急需第17章DirectSoundCapture的源码,谁有发给我一个。

另外,谁有DirectSound编程的心得,代码,给大家说说,谢谢!

我的E-MAIL, mainblue@sina.com

...全文
519 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyinfeng 2002-01-25
  • 打赏
  • 举报
回复
可以,不过我的代码写的很滥,请别见怪。
bluestar 2002-01-25
  • 打赏
  • 举报
回复
谢谢liuyinfeng,俺把分结了先,
可否给我个DirectCapture一边录,一边放的源代码,如果涉及公司机密那也不勉强了。

万分感谢。E-MAIL: mainblue@sina.com
liuyinfeng 2002-01-25
  • 打赏
  • 举报
回复
hi:
这好像是我的程序才有的问题呀?嘻嘻。
嘀嘀声来源于捕获缓冲的数据不能及时的和回放缓冲同步,在衔接点就会有嘀嘀声,解决这个问题需要解决同步,缓冲大小的合理控制等很多问题。这个需要慢慢的调了。
bluestar 2002-01-25
  • 打赏
  • 举报
回复
谢谢!谢谢!

还有问题要请教啊

为什么声音中夹有嘀嘀的噪声呢?自始自终都有,间隔很短。

万分感谢!
liuyinfeng 2002-01-25
  • 打赏
  • 举报
回复
hi,你好:
如果想让应用程序无论有没有焦点都正常录放,需要在初始化DirectSoundBuffer对象和//初始化DirectSoundCaptureBuffer对象时都加上DSBCAPS_GLOBALFOCUS属性,就是DSBUFFERDESC结构的dwFlags的值加上DSBCAPS_GLOBALFOCUS。
对不起,我没有看到您的贴子,可能回贴慢了些,多包涵。
bluestar 2002-01-25
  • 打赏
  • 举报
回复
最新问题:失去应用程序焦点后,就不能录、放音了,是不能录还是不能放不清楚
可否指点一下还有什么地方不对。
谢谢!
liuyinfeng 2002-01-24
  • 打赏
  • 举报
回复
hi:
如果想完成全双工操作,我们就必须定义DirectSound,和DirectSoundCapture两个对象,然后分别开辟缓冲,接下来,我的做法是(之所以说我的做法,是因为可能和例程不符)定义两个Notify对象,分别监控两个缓冲,开两个线程,捕获线程如果被通知事件到达,就将数据写入一个链表,会放线程如果被通知事件到达,就从链表内获得数据并写入,如果没有数据就写入静音。

不知道我说的是否清楚。不清楚您再问。
bluestar 2002-01-24
  • 打赏
  • 举报
回复
可否再请教个问题

就是如何一边录,一边放音?
liuyinfeng 2002-01-23
  • 打赏
  • 举报
回复
从道理上讲,DirectSoundCapture,和DirectSound是一致的。
1,初始化COM环境,创建DirectSoundCapture对象
2,创建DirectSoundCaptureBuffer对象,用于音频捕获
3,创建DirectSoundCaptureNotify对象,初始化事件,用于缓冲内捕获位置的界定
4,等待事件
5,事件产生,锁定缓冲区,拷贝出数据
6,缓冲区解锁。
完毕,您明白了吗?
bluestar 2002-01-23
  • 打赏
  • 举报
回复
现在还没什么头绪,我想知道如何做一个DirectSoundCapture的编程
liuyinfeng 2002-01-23
  • 打赏
  • 举报
回复
盘我没有,如果有问题,请说出具体问题
liuyinfeng 2002-01-23
  • 打赏
  • 举报
回复
你想知道什么?
liuyinfeng 2002-01-23
  • 打赏
  • 举报
回复
是的,我以往的程序是开线程完成的,而且是线程套循环。为什么呢?
1,DirectSoundBuffer内一般不止一个通知点,第一个通知点触发了MsgWaitForMultipleObjects后,需要继续监测仪等待下一个通知点,最后一个通知点触发了以后返回来等待第一个通知点,在这里,请注意环形缓冲的概念。
2,MsgWaitForMultipleObjects是阻塞等待状态的,除非有事件发生,或者你选择了其它消息触发,因此,线程套循环不会占用太多的CPU资源,所以不必担心资源问题。
ok?
bluestar 2002-01-23
  • 打赏
  • 举报
回复
消息循环等待事件发生的程序,需要再开线程吗?
我看DirectX的例子没有用多线程。
是不是再开个线程好些?

谢谢liuyinfeng和提供帮助的朋友
liuyinfeng 2002-01-23
  • 打赏
  • 举报
回复
hi:
关于IDirectSoundNotify的作用就是在DirectSoundBuffer内设置通知,如果你想使用它:
首先,初始化IDirectSoundNotify,初始化一些事件。
然后,用SetNotificationPositions函数设置通知点。
然后,用MsgWaitForMultipleObjects等待事件通知。
事件到达后就可以操作缓冲区了。
明白了吗?
liuyinfeng 2002-01-23
  • 打赏
  • 举报
回复
星星:
_IID_IDirectSoundNotify 联结错误的原因是您没有联结dxguid.lib库,在Setting下设置它就ok了
working_boy 2002-01-23
  • 打赏
  • 举报
回复
Msdn 有实例自己找!!!!!
bluestar 2002-01-23
  • 打赏
  • 举报
回复
哪个事件用到IID_IDirectSoundNotify
为什么编译老是报unresolved external symbol _IID_IDirectSoundNotify
LOADS 2002-01-22
  • 打赏
  • 举报
回复
我也想知道,关注
Leo 2002-01-22
  • 打赏
  • 举报
回复
别忘了给点分 :)
加载更多回复(5)
内容概要:本文提出了一种基于改进扩散模型的高海拔地区新能源高波动出力场景生成方法,并提供了完整的Python代码实现。该方法针对高海拔地区风能、光伏等新能源出力波动剧烈、不确定性高的特点,通过优化扩散模型的结构与训练策略,有效捕捉历史数据的概率分布特征与时序相关性,从而生成高质量、多样化的出力场景。文中详细阐述了模型的数学推导、网络架构设计、损失函数优化及采样算法改进,并通过实验证明其在拟合精度、场景多样性与稳定性方面优于传统生成模型,为电力系统在高比例新能源接入下的规划、调度与风险评估提供了可靠的场景输入支持。; 适合人群:具备一定Python编程能力和机器学习基础,从事新能源发电预测、电力系统分析、智能优化、场景生成等方向研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①用于高海拔地区风电、光伏出力的不确定性建模与多场景生成;②支撑含高渗透率新能源的电力系统随机优化调度、鲁棒决策与风险评估;③为相关学术研究、论文复现与算法改进提供可运行的技术方案与代码基础; 阅读建议:建议读者结合所提供的完整资源(代码、数据集、说明文档)进行实践操作,重点关注扩散模型的前向加噪与反向去噪过程的设计细节,以及如何将其适配于新能源时序数据的生成任务,通过参数调优与对比实验深入理解模型的生成机制与性能边界。
内容概要:本文围绕基于静态约束法的配电网电动汽车接入容量评估展开研究,提出了一种在新型电力系统背景下评估主动配电网对电动汽车承载能力的方法。研究通过构建数学模型,结合潮流计算与关键约束条件(如电压越限、线路过载等),量化分析配电网可承受的最大电动汽车充电负荷容量,旨在识别规模化电动汽车接入带来的潜在运行风险,并为电网规划与运行提供科学依据。文中配套提供了完整的Matlab代码实现,便于仿真验证与结果复现。此外,该研究与分布式光伏承载力评估、电动汽车可调能力分析等方向形成技术联动,展现了多主题协同的研究体系。; 适合人群:具备电力系统分析基础理论知识及Matlab编程能力的高校研究生、科研机构研究人员,以及从事新能源并网、智能配电网规划与运行等相关领域的工程技术人员。; 使用场景及目标:①用于学术研究中的模型复现与论文撰写支撑;②评估实际配电网中电动汽车大规模接入的可行性与安全边界,指导充电基础设施布局;③作为高校教学案例,帮助学生深入理解电网承载力评估的核心原理、建模方法与仿真技术; 阅读建议:建议结合文中提及的相关研究方向(如二阶锥规划、多面体聚合方法等)进行对比学习,充分利用所提供的Matlab代码与网盘资料开展仿真实验,重点关注约束条件的设定逻辑与潮流计算模块的实现细节,以深化对评估模型机理与工程应用价值的理解。

16,550

社区成员

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

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

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