p5.js声音库:如何添加/删除p5.第5页中的短语().零件()
p5.js sound library: how to add/remove p5. Phrases() from p5. Part()?
我正在开发一个带有声音库的p5.js,并使用p5 Phrase和p5 Part使多个声音文件同时播放。
我能够addPhrase()
,但mousePressed
函数中的removePhrase()
函数根本不起作用。我如何在从p5部分添加和删除短语之间切换,这将打开/关闭特定的声音文件?
var box, drum, myPart;
var drumPhrase;
var boxPhrase;
var boxPat = [1, 0, 0, 2, 0, 2, 0, 0];
var drumPat = [0, 1, 1, 0, 2, 0, 1, 0];
function preload() {
box = loadSound('sound/noise.mp3');
drum = loadSound('sound/drum1.wav');
}
function setup() {
noStroke();
fill(255);
textAlign(CENTER);
masterVolume(0.1);
boxPhrase = new p5.Phrase('box', playBox, boxPat);
drumPhrase = new p5.Phrase('drum', playDrum, drumPat);
myPart = new p5.Part();
myPart.addPhrase(boxPhrase);
myPart.addPhrase(drumPhrase);
myPart.setBPM(60);
masterVolume(0.1);
myPart.start();
}
function draw() {
background(0);
}
function playBox(time, playbackRate) {
box.rate(playbackRate);
box.play(time);
}
function playDrum(time, playbackRate) {
drum.rate(playbackRate);
drum.play(time);
}
function mousePressed() {
myPart.removePhrase(box);
}
你是对的,p5.sound中有一个错误,导致p5.Part.removePhrase无法工作。
这里有一个修复:在setup()函数的末尾添加以下代码段:
p5.Part.prototype.removePhrase = function (name) {
for (var i in this.phrases) {
if (this.phrases[i].name === name) {
this.phrases.splice(i, 1);
}
}
};
这将用实际的工作代码替换有缺陷的函数。
我会让p5.js的开发人员知道,这样这个错误就可以在官方版本中得到修复。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- p5.js声音库:如何添加/删除p5.第5页中的短语().零件()
- 在p5-dom上单击提交按钮后,我如何删除该按钮