electron 打包后遇到音频无法播放

2023-01-29 23:29:34 +08:00
 woshipanghu

electron+vue

在开发的时候音频都是正常播放的

但是打包之后音频就无法正常播放了 使用的是 audio 标签

打开控制台报: DOMException: Failed to load because no supported source was found.

加载的音频文件的请求也是成功 不过很奇怪 大小只有 0kb

解决了一天了还没搞定 有能提供下解决思路吗?

1714 次点击
所在节点    程序员
13 条回复
jackytsu
2023-01-30 08:40:45 +08:00
看看是不是没有 ffmpeg.dll 这个文件
jackytsu
2023-01-30 08:42:53 +08:00
Google 了一下,也有可能是这个问题: https://juejin.cn/post/7033172482815328270#heading-9
woshipanghu
2023-01-30 09:40:45 +08:00
@jackytsu 应该是我描述的不清楚 播放页面是在 html audio 标签里的播放的 ffmpeg 这个应该用不到
你上面的那篇文章也按他的修改也测试过了 无是没效果
electron 加载远程的音频是没问题的 但是对加载本地音频文件的某个限制,控制台我也打开看了 地址没问题有文件 加载过来的内容大小是 0kb
感觉像是 electron 这个框架对本地加载的文件做了某些限制
我试过换小一点的音频文件 也是一样加载不到
jackytsu
2023-01-30 09:59:31 +08:00
不知道你的 audio 标签里面的 src 是怎么写的
官方有个类似的 issue 可以试试: https://github.com/nklayman/vue-cli-plugin-electron-builder/issues/1798#issuecomment-1185462737
woshipanghu
2023-01-30 10:16:56 +08:00
@jackytsu 好的 非常感谢 我试试看
Yeen
2023-01-30 10:30:37 +08:00
本地音频资源没打进去?
woshipanghu
2023-01-30 11:02:16 +08:00
@Yeen 打包进去了 文件检查了大小也没问题 打开控制台请求返回的 200 如果没加载到的话就是 404
mlmdflr
2023-01-30 11:49:52 +08:00
是否能提供一个最小复现的仓库
woshipanghu
2023-01-30 13:31:17 +08:00
@mlmdflr
import clockUrl from '../assets/media/clock.wav'
<audio :src="clockUrl" ref='audio' loop />
调用 js 播放
const audioDom = this.$refs.audio
audioDom.setAttribute = 'anonymous'
audioDom.currentTime = 0;
audioDom.play()
.then(()=>{
console.log('ppppplay')
})
.catch(error => {
console.log(error)
})

播放音频相关的代码
Yeen
2023-01-30 15:15:46 +08:00
你把音频资源放到 app.asar.unpacked 呢,不要放到 asar 包里试试。
Yeen
2023-01-30 15:16:36 +08:00
@Yeen yourappdir/resources/app.asar.unpacked/
woshipanghu
2023-01-30 17:15:20 +08:00
@Yeen 打包的时候 asarUnpack: ["**/*" ],
在 app 下面能看到音频文件 但是还是播放不了 真的奇怪了
woshipanghu
2023-01-30 17:17:06 +08:00
@Yeen Uncaught (in promise) DOMException: Failed to load because no supported source was found. 还是一样的报错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/911472

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX