繁体   English   中英

如何在 p5.js 中动态更改声音文件

[英]How to change Sound file dynamically in p5.js

我只想在负载中加载动态声音。 但是有缓冲区错误。 它需要停止,但如果停止,则无法播放。

 let mySound; function preload() { soundFormats('mp3', 'ogg'); mySound = loadSound('assets/doorbell'); } function setup() { let cnv = createCanvas(100, 100); cnv.mousePressed(canvasPressed); background(220); text('tap here to play', 10, 20); } function canvasPressed() { // playing a sound file on a user gesture // is equivalent to `userStartAudio()` mySound = loadSound('assets/othersound'); //<----------LOAD ANOTHER SOUND mySound.play(); }

在你的画布中按下 function; 反转这两行:

mySound.play();
mySound = loadSound('assets/othersound'); //<----------LOAD ANOTHER SOUND

首先播放已加载的声音(预加载),然后加载新声音。 但是,如果声音文件较大或服务器速度较慢,则在您第二次单击时声音可能尚未加载。 您可以随时检查它是否加载了 mySound.isLoad()。 但更有效的方法是这样做:

function canvasPressed() {
  // playing a sound file on a user gesture
  // is equivalent to `userStartAudio()`

  mySound = loadSound('assets/othersound', function(){

      mySound.play();

  });      

}

然后你不必在预加载中加载任何东西。 在 loadSound() function 中,第一个参数是声音文件的 url,第二个参数是 'succesCallback'。 function 在加载声音文件并准备播放时运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM