我已经创建了一个电子应用程序,包括一个声音效果。我使用包sound-play在我的main.js文件中播放声音效果(从这里那里学到的)。当我通过npm start运行它时,它是正常工作的。但是在使用electron-packager打包我的应用程序之后,当我从“release”文件夹运行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 functionPackage.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进行打包。
只是再次指出,只有声音才不会在包装后播放。其他方面都很好。
我可能错过了一些非常基本的东西。任何帮助都会很好。谢谢。
发布于 2021-08-31 06:08:47
编辑:类似于下面列出的电子构建器解决方案,我搜索了电子包文档,并找到了一个类似的额外文件选项,而不是使用"extraResource“的”文件“,检查一下在医生里。
原来的答案:
如果你在打包之前使用webpack来捆绑你的应用程序,看看你是否可以将它包含在你的Javascript文件中,并且在webpack中有一个文件加载器解释了这里(博客网站),这里(堆栈溢出),当然还有这里(webpack官员)。一定要安装文件加载程序!
我更喜欢将电子生成器用于打包应用程序,如果要切换,可以将该文件包含到打包的应用程序中,如下所示:
在JSON设置(package.json)中列出要包含在打包程序中的音频文件,例如:
"build": {
// ...Other settings go here,
"files": [
"path/to/sound.mp3" //<-- This will include the file separately
// into your app's build
]
}然后,您可以在应用程序中使用一个相对路径,但是如果您在开发中没有类似的路径,构建过程可能会变得不确定。您可以了解更多关于电子构建器打包选项在他们的网站上。海事组织的班德勒(webpack)解决方案将是最好的。希望这有帮助,祝你好运!
https://stackoverflow.com/questions/68980034
复制相似问题