gpt4 book ai didi

用于音频处理和路由到默认音频设备的音频 Hook 或自定义音频驱动程序

转载 作者:行者123 更新时间:2023-12-02 23:20:27 25 4
gpt4 key购买 nike

我为我的客户开发了一个非常复杂的音频软件,其中包含 Winamp、Windows Media player 和 VST 的插件。现在客户对避免维护大量插件的方法感兴趣,我们无法支持所有的媒体播放器。

客户端还不关心Unix/Mac,所以我只能看Windows XP和Vista/7/
基本上,我们需要的是一种始终可靠地拦截尽可能多的音频流协议(protocol)的方法(好吧,也许除了 ASIO,我猜这是另一个故事),然后将此音频通过我们的自定义效果引擎,然后路由回默认值音频设备,不管它是什么。

现在我在想,我有什么选择(理论上)。

我可以使用钩子(Hook)。我需要连接全局较旧的 vaweOut 和 DirectSound。

但这仍然适用于 Vista/7 吗?

我可以使用虚拟驱动程序,就像 Virtual Audio Cable 的作者所做的那样:
http://software.muzychenko.net/eng/vac.htm

似乎是一项相当艰巨的任务。无论如何,客户会联系 VAC 的作者,看看他是否同意以合理的价格出售他的源代码。

此驱动程序可以将自身安装为默认音频输出设备,拦截来自 Windows 的音频流,并将其传递回默认设备。嗯,但是各种 DirectSound 音频缓冲区呢,我是否必须自己混合它们,或者有什么方法可以告诉 Windows 混音器为我混合所有内容并传递单个混合音频流?
看起来,这个自定义驱动程序当然会杀死所有硬件音频加速,但如果我们警告我们的客户这个问题,我们可以忍受。

据我了解,最新的 Windows 驱动程序标准是 WDF。

但也许它不适用于 Windows Vista/7 上的音频?
我知道,Vista/7 的音频堆栈与 XP 不同。

如果我可以使用 WDF 来完成,我应该编写什么驱动程序 - 内核模式或用户模式?

也许我错过了在 Windows 上拦截、处理和路由音频的更优雅和简单的选项?

最佳答案

尝试虚拟音频流 SDK。还有虚拟声卡,让您实时读取/处理音频数据。 http://www.virtualaudiostreaming.net/sdk-license.html

关于用于音频处理和路由到默认音频设备的音频 Hook 或自定义音频驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com