Electron 节目突然播出了

Electron 节目突然播出了,electron,Electron,我已经为一个电子应用程序工作了几天。当我昨天完成一天的工作时,程序运行良好。我今天早上来这里是为了重新开始工作,现在突然在项目进行到一半的时候它变成了白色。从上一次(最后一次已知的工作)到当前时间,我没有更改任何内容 在运行npm start后,我没有看到任何错误记录到powershell控制台(程序也无法运行),当我使用inspect元素时,它只会说: DevTools已从页面断开连接 重新加载页面后,DevTools将自动重新连接 但它只是永远停留在这白色的一页上 这个页面有相当多的代码(5

我已经为一个电子应用程序工作了几天。当我昨天完成一天的工作时,程序运行良好。我今天早上来这里是为了重新开始工作,现在突然在项目进行到一半的时候它变成了白色。从上一次(最后一次已知的工作)到当前时间,我没有更改任何内容

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

DevTools已从页面断开连接

重新加载页面后,DevTools将自动重新连接

但它只是永远停留在这白色的一页上

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

如何修复我的应用程序

这是我将其缩小到的代码,当我注释掉这段代码时,页面运行良好

var audio = require('win-audio').speaker;
奇怪的是,这是我在应用程序的这一页中编写的第一段代码之一,它一直工作到今天


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

更新::

好的,我想我已经修好了。要尝试:

  • 下载我的fork地址:
  • 在终端中,将目录(cd)更改为目录,例如“cd C:\…\win audio”
  • 运行命令“npm run install”-这将重建模块
  • 要测试它,请运行“node sample.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);
    }
    

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

    这完全好。我现在正在出错。<代码>动态链接库(DLL)初始化例程失败。< /代码>如果在“NPM运行安装”中发生,您的系统是否能够构建C++插件?如果您在windows上,是否安装了visual studio和python?否,安装之后会发生这种情况。当我运行我的Electron应用程序并进入使用该代码的页面时,就会发生这种情况。我很确定它没有问题,因为我没有收到任何错误。它在纯节点(不是electron)应用程序/演示中工作吗?如果是的话,它可能是你需要重建它的电子。例如,在win audio package.json中,您可以创建一个新的“scripts”选项,如:“install_vele”:“node gyp rebuild--target=X.X.X--arch=x64--dist url=”(用您的电子版本替换X.X.X)。然后执行“npm运行安装级别”。