我已经在 Electron 应用程序上工作了几天。当我昨天完成一天的工作时,程序运行良好。我今天早上进来重新开始工作,现在突然在程序进行到一半时,它现在只是白屏。从上次工作(最后一次已知工作)到当前时间,我没有改变任何东西。
运行 npm start
后,我没有看到任何错误记录到 powershell 控制台(程序也不能打包工作),当我使用检查元素时,它只是说:
DevTools was disconnected from the page.
Once page is reloaded, DevTools will automatically reconnect.
但它只是永远坐在这个白页上。
这个页面有很多代码(531 行),但我完全无法查明问题,因为没有记录任何错误。也就是说,我开始从我的代码中提取一些片段,试图让它工作,并且我能够将它缩小到下面的代码。
我可以做些什么来修复我的应用程序?
这是我缩小范围的代码,当我注释掉这段代码时,页面运行良好。
var audio = require('win-audio').speaker;
奇怪的是,这是我在此应用程序页面中编写的第一批代码之一,它一直有效到今天。我刚刚发现,如果我插入一些扬声器,程序不再出现白屏。但这并不是一个很好的解决方案,因为这个程序每天将在数百台可能有也可能没有扬声器的计算机上运行。
最佳答案
更新::
好的,我想我已经解决了。尝试一下:
如果在任何时候您想检查设备是否还活着,只需运行
var audio = require('win-audio').speaker;
var _vol_alive = audio.get();
if (_vol_alive === -999) {
console.log("this device is dead :-(");
}
在您的应用程序中。请注意,我根本没有更改 API,因此不需要更改您的应用程序代码。
如果修复对您有用,请提醒我,以便我可以为修复创建拉取请求。我不是这个插件的创建者,我所有的更改都是公共(public)领域的。
已弃用::
好的,我已经为您找到了解决方法。如果:
var audio = require('win-audio').speaker;
如果没有找到设备返回-1?
所以你可以这样做:
if (audio !== -1) {
audio.set(30);
}
请给我一个简短的提示,我将发布实现路线。
关于electron - 突然程序白屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254386/