我已经创建了一个电子应用程序组成的声音效果。我正在使用软件包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
Package.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
命令进行打包。
- 只是再次指出,只有声音是 Package 后不播放.其他方面都很好 *
我可能错过了一些非常基本的东西。任何帮助将是美好的。谢谢.
2条答案
按热度按时间yruzcnhs1#
编辑:类似于我下面列出的电子构建器解决方案,我搜索了电子打包器文档,发现了一个类似的额外文件选项,而不是“文件”,你将使用“extraResource”,请在文档中查看。
原文回答:
如果你在打包之前使用webpack捆绑你的应用,看看你是否可以将它包含在你的JavaScript文件中,并在你的webpack中有一个文件加载器解释here(blog site),here (Stack overflow),当然还有here (webpack official)。请务必安装File-loader!
我更喜欢使用Electron builder来打包应用程序,如果你要切换,你可以将文件包含到打包的应用程序中,如下所示:
在你的JSON设置(package.json)中列出要包含在打包器中的音频文件,例如:
然后,您可以在应用程序中使用相对路径,但如果在开发构建中没有类似的路径,则可能会出现问题。你可以在他们的网站上找到更多关于电子制造商 Package 选项的信息。IMO的bundler(webpack)解决方案将是最好的。希望这有帮助,祝你好运!
uqxowvwt2#
您可以使用base64数据代替声音文件路径。同样在HTML5 Audio的渲染过程中: