如何在Windows 10中禁用蓝牙设备电源管理?

如何在Windows 10中禁用蓝牙设备电源管理?

我有一个蓝牙音频设备,我用它来播放电脑上的声音。当播放软件中的音乐时,它可以正常工作。当将其与 Ms Teams 或 Zoom 等远程会议软件一起使用时,每当人们开始或停止说话时,音频都会发出小爆音。这不是噼啪声。就好像连接在静音 1 秒后进入省电模式。我认为这与应用程序无关。我想测试一下这个理论,那么如何在 Windows 10 中禁用蓝牙连接的省电功能?

在设备管理器中,对于有问题的蓝牙设备,详细信息选项卡,电源数据选择,当前电源状态现在为 D0,电源功能为 00000009,PDCAP_D0_SUPPORTED,PDCAP_D3_SUPPORTED,但电源状态映射 S0 到 S5 均为未指定。众所周知,在设备管理器中,不再有电源管理选项卡,该选项卡曾经有允许计算机关闭此设备以节省电源选项。我尝试了 CsEnabled 注册表项并重新启动,但没有成功。

我已经使用 PowerShell 命令找到了设备$dev = Get-PnpDevice -FriendlyName "NS-01G Pro",但$dev.PowerManagementSupported$dev.PowerManagementCapabilities都是空的。$prop = Get-PnpDeviceProperty -InstanceId $dev.InstanceId -KeyName "DEVPKEY_Device_PowerData"给出了结果,但似乎我无法修改$prop.data数字数组。$wmidev = Get-WmiObject -Query "select * from win32_PnPEntity" | Where Name -Like "NS-01G Pro"有效,但我再次无法修改其属性。我没有成功地使用Get-CimInstance查询找到设备,但这可能是由于我缺乏技能。

有什么帮助吗?我是 PowerShell 新手,所以可能有一些命令可以解决问题。任何解决实际问题的帮助也欢迎。

答案1

尝试在后台使用 PowerShell 在 RAM 中播放静音 WAV 流循环,如下所示(方法结合自这个答案此主题这篇 Reddit 帖子以及四分之一秒的静音 WAV 文件档案馆):

# Make the Base64 string that would be saved in the PowerShell script file
$WAV = [IO.File]::ReadAllBytes("C:\quarter-second-silence.wav")
$Base64WAV = [Convert]::ToBase64String($WAV)
$Base64WAV > C:\quarter-second-silence.txt
(copy output from C:\quarter-second-silence.txt using Notepad)

# Return the Base64 string to a byte array;
# also you can save the following code as PS1 file
# and execute from PowerShell via "& C:\Script.ps1"
# or better create a scheduled task to play hidden loop at log on
# as described further; be sure first to check if this helps by
# executing commands one-by-one in PowerShell and don't close
# PowerShell window after last command during test run
# (before making a Script.PS1 file)
$ConvertedWAV = [System.Convert]::FromBase64String("<paste copied output>")
$MemoryStream = [System.IO.MemoryStream]::new($ConvertedWAV)
# Loop playback of the returned string
$SoundPlayer = [System.Media.SoundPlayer]::new($MemoryStream)
$SoundPlayer.PlayLooping()

PowerShell 脚本可以在后台执行在用户登录时,在此特定情况下,可以安全地隐藏 PowerShell 任务,以便在后台播放静音声音(因此,您在任务管理器中看到的只是 PowerShell 进程,没有额外的闪烁窗口,任务栏或系统托盘中没有额外的图标)。要在启动时完全静默地执行 PS1 文件,请在任务计划程序中创建一个新任务,并在用户登录时以隐藏方式执行以下操作(您可以使用具有以下目标的快捷方式):

%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -file "C:\Script.ps1"

(创建任务操作并复制粘贴此代码时,任务计划程序会询问您是否要使用程序的命令参数,请同意。包含 Base64 编码 WAV 的脚本的文件大小为 ~58 KB,PowerShell 后台任务在运行时使用 ~1.4 MB 的 RAM,因此它不是一个特别耗费资源的解决方案。)

你可能有兴趣或不感兴趣检查我在 Stack Overflow 上提出的问题它解决了类似的问题并提供了关联AppleAudio.sys一种在 Windows 10 中保持音频驱动程序处于唤醒状态的方法(但是它对版本 6.1.8000.1-6.1.8000.3 和 Windows 10 版本 21H2没有帮助)。

答案2

自从几个月前我重新安装了 bt 驱动程序后,win10 也出现了同样的问题,非常烦人。它还会在一两秒内随机切断音频。

问题似乎出在微软管理蓝牙音频的方式上,因为它无法对装有 win7 的同一台机器解决该问题。

在 win7 中,音频会持续运行,当放大器音量较高时会产生永久的微弱背景噪音。

我个人更喜欢永久地保留少量的寄生声音,而不是随机的流行音乐和剪辑。

我可以通过使用像 fl studio 这样的软件来解决这个问题,它可以连续运行声音,避免 windows 断开/重新连接 bt 并随机丢失声音。

鼠标也存在断开连接/连接问题,有时迫使我取消配对/配对设备,然后将其扔掉......

相关内容