Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 使用SWF的电子在测试时起作用,但在构建后不起作用_Flash_Electron - Fatal编程技术网

Flash 使用SWF的电子在测试时起作用,但在构建后不起作用

Flash 使用SWF的电子在测试时起作用,但在构建后不起作用,flash,electron,Flash,Electron,我有一个简单的Electron应用程序,我合并了一个带有SWF对象的HTML页面。我已经包括了Pepper Flash播放器,并从中复制了main.js代码。当我从命令提示符/gitbash运行应用程序进行测试时,SWF工作正常。但是,一旦我构建并运行应用程序,SWF内容就不会加载。内容区只显示“无法加载插件” 我已经包括了32位和64位版本的Flash player插件 let pluginName; switch (process.platform) { case 'win32':

我有一个简单的Electron应用程序,我合并了一个带有SWF对象的HTML页面。我已经包括了Pepper Flash播放器,并从中复制了main.js代码。当我从命令提示符/gitbash运行应用程序进行测试时,SWF工作正常。但是,一旦我构建并运行应用程序,SWF内容就不会加载。内容区只显示“无法加载插件”

我已经包括了32位和64位版本的Flash player插件

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))
我通过多次尝试和错误解决了我的问题(有一些)

  • 主要的问题是,在构建时,我有--asar=true,因此应用程序试图从asar存档中提取插件,但它无法。为了解决这个问题,我刚刚在构建时将插件添加到--extraResource标志中
  • 除此之外,在应用程序中,我更新了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
      }
    
  • 最后,正如我在搜索的各个地方指出的那样,64位插件被用来代替32位插件

  • 我希望这能为其他人节省一点时间。

    我现在也有同样的问题。你是在用electron builder吗?我想是的。然而,这是几年前的事了,我对电子的努力很少,我不可能是100%。如果我能在我的档案中找到这个项目,我会修改我的回复。