【问题标题】:Not able to play sound in electron app after packaging打包后无法在电子应用中播放声音
【发布时间】:2021-08-30 06:57:31
【问题描述】:

我创建了一个包含声音效果的电子应用程序。我正在使用包sound-play 在我的main.js 文件中播放音效(从here 学习)。当我通过npm start 运行它时,它可以正常工作。但是在使用electron-packager 打包我的应用程序后,当我从“release-builds”文件夹运行 exe 文件时,只有音效没有播放。该应用程序的所有其他方面都运行良好。

Shutter.mp3 是项目目录中的声音文件

Main.js:

const sound = require("sound-play");
const filePath = path.join(__dirname, "shutter.mp3");
sound.play(filePath)  //For playing the sound inside a function

包.json:

 "scripts": {
    "start": "electron .",
    "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
    "package-win": "electron-packager . Namegoeshere --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Namegoeshere\"",
    "package-linux": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png --prune=true --out=release-builds"
  },

使用命令npm package-win进行打包。

只是再次指出只是包装后声音不播放。其他方面都很好。

我可能遗漏了一些非常基本的东西。你能帮忙的话,我会很高兴。谢谢。

【问题讨论】:

  • 没有一些代码,很难帮你。您是否在路径中使用__dirname 加载声音文件并在打包时禁用了ASAR?
  • @AlexanderLeithner 我的错。我已经添加了您提到的一些代码。现在就来看看吧。

标签: javascript node.js audio electron


【解决方案1】:

编辑:与我在下面列出的电子生成器解决方案类似,我搜索了电子打包器文档并找到了用于额外文件的类似选项,而不是“文件”,您将使用“额外资源”,请查看 in the docs .

原答案:

如果您在打包之前使用 webpack 捆绑您的应用程序,请查看是否可以将其包含在您的 Javascript 文件中,并在您的 webpack 中解释here(blog site)here (Stack overflow),当然还有here (webpack official) 中的文件加载器。 一定要安装 File-loader!

我更喜欢使用Electron builder 来打包应用程序,如果您要切换,可以将文件包含到您的打包应用程序中,如下所示:

在您的 JSON 设置 (package.json) 中列出音频文件以包含在您的打包程序中,例如:

"build": {
    // ...Other settings go here,
    "files": [
      "path/to/sound.mp3" //<-- This will include the file separately 
      // into your app's build
   ]
}

然后您可以在您的应用程序中使用相对路径,但如果您在开发构建中没有类似的路径,事情可能会变得不确定。您可以了解有关电子制造商包装选项的更多信息on their website。 IMO 捆绑器(webpack)解决方案将是最好的。希望这会有所帮助,祝你好运!

【讨论】:

  • 非常感谢。 “额外资源”派上用场了。很抱歉迟到了。
猜你喜欢
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多