如何在 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();
}
在你的 canvasPressed 函数中;反转这两行:
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() 函数中,第一个参数是声音文件的 url,第二个参数是 'succesCallback'。该函数在加载声音文件并准备播放时运行。
我只是想加载动态声音里面的负载。 但是有缓冲区错误。需要停止,但是如果停止了,就不能播放了。
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();
}
在你的 canvasPressed 函数中;反转这两行:
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() 函数中,第一个参数是声音文件的 url,第二个参数是 'succesCallback'。该函数在加载声音文件并准备播放时运行。