【用户手册】Windows 5.x中的 DirectSound 问题

VirtualAudioCable14年前 (2010-10-10)用户手册

目标设备测试

在使用目标设备之前,应用程序或DirectSound子系统本身通常会执行一些测试,反复打开具有各种音频格式的设备以查看支持哪些格式。此类测试通常在 Windows 启动、DirectSound 应用程序启动和 DirectSound 设备选择时执行。

大多数设备都可以随时使用它们支持的任何音频格式成功打开。但是虚拟电缆可以限制可能的流格式范围并拒绝指定“不良”格式的开放请求。因此,某些 DirectSound 应用程序可能无法选择此电缆或根本无法启动。您可能需要停止所有电缆活动以允许此类应用程序正确初始化。或者,您甚至可能需要在启动此应用程序之前 设置限制较少的格式范围和/或流格式限制模式,并在应用程序完成初始化时再次恢复适当的值。

使用硬件加速

在Windows 5.x中,DirectSound提供了硬件加速功能,允许利用某些内部音频设备功能。其中一项功能允许多流播放和录制。这意味着设备可以同时处理多个音频流,并且其驱动程序可以并行创建多个引脚实例。多流功能允许多个应用程序同时使用一个设备,而无需软件中的特殊共享支持。每个应用程序都会创建一个或多个流,并且设备会适当地处理所有这些流。例如,如果内部硬件 DSP 可以重新采样 并混合多个流,它减少了主CPU负载,并允许应用程序在音频格式选择 方面更加灵活。

尽管 VAC 没有专有硬件并且仅使用主CPU 资源,但它报告了硬件加速支持,以允许 Windows 音频子系统创建多个pin实例(流)。当应用程序创建硬件加速的DirectSound 缓冲区时,Windows 音频子系统会从驱动程序 请求新的pin 实例。在驾驶员侧,创建一个新的音频流( VAC 控制面板显示活动流的数量)。VAC 拥有多个音频流,将它们的格式转换为电缆格式,然后混合在一起。

每根电缆可以创建最大实例配置参数指定的任意数量的引脚实例 。如果没有可用实例,DirectSound将无法创建硬件加速缓冲区。对于普通的缓冲区,DirectSound 可以在系统音频引擎 层创建一个新的流。在这种情况下,系统音频引擎将转换和混合这些流而不是 VAC。因此您可以控制应用程序的音频数据的处理方式。

有时您可以控制应用程序使用硬件加速功能的能力。例如,WinAMP 和Foobar2000播放器有相应的复选框。

硬件加速级别

仅当当前最大硬件加速级别允许时,Windows 5.x DirectSound子系统才会使用每个硬件加速功能。有四个加速级别:None、Basic、 Standard和Full。每个下一个级别都允许 DirectSound 子系统利用更多设备/驱动程序内部功能并更有效地处理音频数据。因此,加速级别越高越好,但可能会导致一些不兼容性,因此 Windows 提供较低的级别以实现更好的兼容性。

对于每个 DirectSound 设备,允许的最大硬件加速级别可以独立设置为这四个值中的任何一个。使用 DirectSound 接口的应用程序不能利用超过最大设备级别允许的加速功能。

多流功能仅在最高(全) 加速级别 上可用。对于每个新设备,最大级别设置为标准 值。因此,要利用所有设备功能,您必须手动 将其设置为“完整”值。

您可以使用音频属性小程序 更改 VAC 设备的最大加速级别。打开“音频”选项卡,在“声音播放”列表框中 选择任何虚拟 Cable N设备,然后单击“高级”按钮。在“高级音频属性”页面上,打开“性能”选项卡,选择所需的加速级别,然后单击“确定”。在“声音和音频属性”页面上,单击“取消”(如果您在此处单击“确定”,您的默认设备将被更改)。

Windows 6.x + 不实现 DirectSound 硬件加速。所有音频处理均由主CPU 执行。

如果通道混合禁用则工作

如果禁用通道混合,硬件加速播放可能会产生不良效果。例如,如果您在两通道电缆上播放单声道流,DirectSound首先创建具有通道掩码3 ( FL + FR ) 的共享立体声流,然后创建具有通道掩码 4 ( FC ) 的单独硬件加速单声道流。由于这些遮罩不重叠,VAC 不会执行分散/聚集转换,而是将单声道直接复制到电缆的左声道。


此软件“仅限学习交流,不能用于商业用途”如用于商业用途,请到官方购买正版软件,追究法律责任与本站无关!

我们每月需支付高额服务器费用,捐赠将保证服务器有更好的配置和稳定运行;非常感谢您的捐赠支持。
(资源收集整理维护不易,敬请珍惜并感谢开发者。)