javascript - 打包后无法在电子应用中播放声音
问题描述
我创建了一个包含声音效果的电子应用程序。我正在使用该包sound-play
播放我的文件中的音效main.js
(从这里学习)。当我运行它时,它可以正常工作npm start
。但是使用 打包我的应用程序后electron-packager
,当我从“release-builds”文件夹运行 exe 文件时,只有音效没有播放。该应用程序的所有其他方面都运行良好。
Shutter.mp3 是项目目录中的声音文件
主.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
进行打包。
只是再次指出它只是包装后声音不播放。其他方面完全没问题。
我可能遗漏了一些非常基本的东西。你能帮忙的话,我会很高兴。谢谢。
解决方案
编辑:与我在下面列出的电子生成器解决方案类似,我搜索了电子打包器文档,发现额外文件的类似选项,而不是“文件”,您将使用“extraResource”,请在文档中查看。
原答案:
如果您在打包之前使用 webpack 捆绑您的应用程序,请查看是否可以将其包含在您的 Javascript 文件中,并在您的 webpack 中有一个文件加载器在此处(博客站点)、 此处(堆栈溢出),当然还有此处(webpack 官方) . 一定要安装文件加载器!
我更喜欢使用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
]
}
然后,您可以在您的应用程序中使用相对路径,但如果您在开发构建中没有类似的路径,事情可能会变得不稳定。您可以在他们的网站上找到有关电子制造商包装选项的更多信息。IMO 捆绑器(webpack)解决方案将是最好的。希望这会有所帮助,祝你好运!
推荐阅读
- java - 在字节码层面,初始化一个java内部类的流程是什么?
- android - android中的Google Map Places自动完成错误429
- elasticsearch - Elasticsearch 滚动 API 返回 terminate_early 而没有 scroll_id
- javascript - 如何 DOM 使选择元素值从一个 javascript 函数到另一个
- javascript - React.js:在构造函数中使用类的组件
- ms-access - 触发 MouseOver 事件标签
- javascript - 在 Flask 中运行 python 脚本时动态更改 HTML
- postgresql - 如何从手机访问 postgreSQL 数据库?
- html - 内部 DIV 溢出时更窄的 DIV
- elasticsearch - 通过将路由键更改为两个字段值的组合,将弹性搜索文档重新索引到另一个索引