javascript - 在 Electron 内部使用时,咆哮会抛出 'Decoding audio data failed'

标签 javascript electron web-audio-api howler.js

我正在尝试在渲染器进程中使用Electron应用程序内的Howler.js加载音频文件。

new Howl({
  src: ['/path/to/audio/file.mp3'] 
)}

但是,无论我尝试加载哪种文件类型,它始终在Howler的loaderror事件中引发相同的错误:
Decoding audio data failed.

我正在使用Parcel构建基于React的前端。
当我尝试删除它们并开始一个新的Electron项目时,从同一路径加载和播放音频文件效果很好。

这些是构建命令:
"dev": "concurrently --kill-others --success first \"npm run parcel-dev\" \"npm run electron-dev\"",
"parcel-dev": "parcel ./src/index.html -d build/",
"electron-dev": "electron . --start-dev",

最佳答案

我在React应用程序中遇到了类似的问题。我可以通过将声音文件导入JavaScript文件顶部并将别名传递到函数中来对其进行修复。

import { Howl } from 'howler';
import soundFile from './sound-file.mp3'


export const sound = new Howl ({
  src: [soundFile],
  onload() {
    console.log("Sound is loaded.")
  },
  onloaderror(msg){
    console.log("NO SOUND!!!", msg)
  }
})

关于javascript - 在 Electron 内部使用时,咆哮会抛出 'Decoding audio data failed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60798831/

相关文章:

javascript - 使用 Ajax 的 jQuery Select2 插件

javascript - Angular/ ionic : how can I refresh a directive when I update variables in the controller?

javascript - Electron 和 Node : How to read an SQL file?

javascript - Node.js - 让 Node.js/Express 与 Web 音频 API 配合使用

javascript - 将二维数组切片为更小的 'blocks' 或 'chunks' 数组

javascript - Angularjs动态设置属性

electron - Electron 框架如何实现像Ajax请求这样的通信?

node.js - 如何使用PouchDB(leveldb)将我的 Electron 应用程序与Cloudant或其他任何支持CouchDB并同步的数据库进行连接

javascript - 使用 Node.js 传输 PCM 音频

javascript - 将 .wav 加载到音频缓冲区中