gpt4 book ai didi

flash - 使用 SWF 的 Electron 在测试时有效,但在构建后无效

转载 作者:行者123 更新时间:2023-12-03 12:22:31 25 4
gpt4 key购买 nike

我有一个简单的 Electron 应用程序,我正在合并一个具有 SWF 对象的 HTML 页面。我包含了 Pepper Flash Player 并从 tutorial 复制了 main.js 代码.当我从命令提示符/git bash 运行应用程序进行测试时,SWF 工作正常。但是,一旦我构建并运行应用程序,SWF 内容将不会加载。内容区域仅显示“无法加载插件”。

我包含了 32 位和 64 位版本的 Flash 播放器插件。

let pluginName;
switch (process.platform) {
case 'win32':
if (process.arch === 'x64' || process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432')) {
console.log("64bit");
pluginName = "PEP/pepflashplayer64_29_0_0_171.dll";
}
else{
console.log("32bit");
pluginName = "PEP/pepflashplayer32_29_0_0_171.dll";
}
break
case 'darwin':
pluginName = 'PEP/PepperFlashPlayer.plugin'
break
}

app.commandLine.appendSwitch('ppapi-flash-path', path.join(__dirname, pluginName))

最佳答案

我通过多次试验和错误找出了我的问题(有几个)。

  1. 主要问题是,在构建时,我有 --asar=true,因此该应用程序试图从 asar 存档中提取插件,但它做不到。为了解决这个问题,我只是在构建时将插件添加到 --extraResource 标志中。
  2. 除此之外,我在应用程序中更新了 switch 语句以确定它是构建还是测试(从 cmd 行),如下所示:

      switch (process.platform) {
    case 'win32':
    if (basename === "resources") {
    pluginName = "../../pepflashplayer32_29_0_0_171.dll";
    }
    else {
    pluginName = "./plugins/pepflashplayer32_29_0_0_171.dll";
    }
    break
    case 'darwin':
    if (basename === "resources") {
    pluginName = '../../PepperFlashPlayer.plugin'
    }
    else {
    pluginName = './plugins/PepperFlashPlayer.plugin'
    }
    break
    }
  3. 最后,正如我在搜索的各个地方指出的那样,使用的是 64 位插件而不是 32 位插件。

我希望这可以为其他人节省一些时间。

关于flash - 使用 SWF 的 Electron 在测试时有效,但在构建后无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50630151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com