程序白筛选突然之间



我已经在电子应用程序上工作了几天。当我昨天完成一天的工作时,程序运行良好。我今天早上又来了,开始研究它,现在突然在程序中途,它现在只是白屏。从上次(上次已知的工作(到当前时间,我没有更改任何内容。

运行npm start后,我没有看到任何错误被记录到 powershell 控制台(程序也无法打包工作(,当我使用 inspect 元素时,它只是说:

DevTools 已与页面断开连接。

重新加载页面后,开发人员工具将自动重新连接。

但它只是永远停留在这个白页上。

这个页面有很多代码(531行(,但我完全无法查明问题所在,因为没有记录任何错误。也就是说,我开始从我的代码中取出一些片段,试图让它工作,并且我能够将其缩小到下面的代码。

我该怎么做才能修复我的应用程序?

这是我缩小范围的代码,当我注释掉这段代码时,页面运行良好。

var audio = require('win-audio').speaker;

奇怪的是,这是我在应用程序的此页面中编写的第一段代码之一,它一直工作到今天。

我刚刚发现,如果我插入一些扬声器,程序就不再是白屏了。但这不是一个很好的解决方案,因为该程序每天将在数百台计算机上运行,这些计算机可能有也可能没有扬声器。

更新::

好的,我想我已经修复了它。要试用一下:

  1. 下载我的分叉: https://github.com/11AND2/win-audio
  2. 在您的终端中将目录 (cd( 更改为目录,例如"cd C:\...\win-audio">
  3. 运行命令"npm run install" - 这将重建模块
  4. 要测试它,请运行"节点样本.js"并激活/禁用音频设备

如果您想在任何时候检查设备是否处于活动状态,只需运行

var audio = require('win-audio').speaker;
var _vol_alive = audio.get();
if (_vol_alive === -999) {
console.log("this device is dead :-(");
}

在您的应用程序中。请注意,我根本没有更改 API,因此无需更改您的应用程序代码。

如果修复程序适合您,请提醒我,以便我可以为修复程序创建拉取请求。我不是这个插件的创建者,我所有的更改都是公共领域。


荒废的::

好的,我已经为您找到了解决方案。如果可以吗:

var audio = require('win-audio').speaker;

如果未找到设备,则返回 -1?

所以你可以做:

if (audio !== -1) {
audio.set(30);
}

请给我一个简短的提示,我将发布实施路线。

最新更新