P5.js未加载声音

时间:2019-08-30 07:51:22

标签: processing p5.js

我正在尝试加载mp3文件(根据示例),但我正在获得

Unable to load bg.mp3. The request status was: 0 () The error stack trace includes: loadSound
我已将问题提到此Github问题https://github.com/processing/p5.js-sound/issues/141,但找不到解决方案。 另外,我正在使用Brackets编辑器,该编辑器将启动本地服务器并打开一个新的Chrome实例。

let mySound;
function preload() {
  soundFormats('mp3', 'ogg');
  mySound = loadSound("bg.mp3");
}

function setup(){
   createCanvas(displayWidth,displayHeight);
   mySound.setVolume(0.1);
   mySound.play();
}

2 个答案:

答案 0 :(得分:1)

奇怪,Sound: Load and Play Sound example可以正常工作。

该错误似乎point to on an XHR load error,但不清楚原因。

值得尝试full version of loadSound(),其中包括错误回调:loadSound(path, [successCallback], [errorCallback], [whileLoading])。 希望errorCallback详细信息将有助于解决问题 例如

let mySound;
function onSoundLoadSuccess(e){
   console.log("load sound success",e);
}
function onSoundLoadError(e){
   console.log("load sound error",e);
}
function onSoundLoadProgress(e){
   console.log("load sound progress",e);
}
function preload() {
  soundFormats('mp3', 'ogg');
  mySound = loadSound("bg.mp3",onSoundLoadSuccess,onSoundLoadError,onSoundLoadProgress);
}

function setup(){
   createCanvas(displayWidth,displayHeight);
   mySound.setVolume(0.1);
   mySound.play();
}

还尝试导航到Web服务器,然后方括号启动并手动访问文件。 (例如http://localhost:BRACKETS_HTTP_PORT_HERE/bg.mp3)。如果一切正常(bg.mp3与index.html文件位于同一文件夹中),则浏览器应加载并显示默认的音频播放控件。

值得注意的是,您可以尝试其他许多http服务器,下面是一些示例:

  1. 如果您使用的是OSX,则可以使用Python的HTTP Server(在Python 2或python -m SimpleHTTPServer中使用python -m http.server
  2. 如果您使用node.js,则有一个http服务器模块(例如,项目文件夹中的npm install http-server然后http-server
  3. Apache变体(取决于操作系统,MAMP / WAMP / XAMPP等),尽管可能会过分杀伤

答案 1 :(得分:0)

对于遇到此问题的任何人来说,快速修复是使用 Local web server。 (mamp/xamp/本地等)。然后在预加载/设置中引用它

sound = loadSound('http://localhost/audio.mp3', loaded);

文档确实说明了 -

<块引用>

您将需要 p5.sound 库和正在运行的本地服务器