gpt4 book ai didi

javascript - 使用javascript动态播放多种声音

转载 作者:行者123 更新时间:2023-12-03 02:01:22 25 4
gpt4 key购买 nike

    var actions = function(){return {whichPattern:"pattern1"}};
var audio = new Audio();
var _play = function(){
var l = pattern[actions().whichPattern].instrument.length,
times_played =0;
var p = setInterval(function(){

var x = pattern[actions().whichPattern][times_played];
for(var i=0; i<x.length;i++){
var toBePlayed = pattern[actions().whichPattern][times_played][i],
url= "All Drums sounds/"+toBePlayed+".wav";
audio.src = url;
audio.play();
console.log(audio);
times_played++;
}

}, pattern_config[actions().whichPattern].delay);
if(times_played === l){
clearInterval(p);

};

var pp=document.getElementById("play_pause");
pp.style.background="url('graphics/pause.png') no-repeat";
pp.style.backgroundSize ="30px 28px"
audio.source='All Drums sounds/'+pattern['pattern1'][1][0]+'.wav';
audio.play();

};

var pattern_config = {
pattern1:{
WP_slotsCounter:0,
instrument:["Kick_02", "F_T_03", "Rude_cymbal_02"],
delay:10
},
};

var pattern={
pattern1: [], // [['asas', 'sf', 'asd'], ['svv','dgh','sdgh']]
}

上面的代码很简单。第一个函数返回一个对象...

我的主要动机是:

假设使用 pattern.pattern1 = [['asas', 'sf', 'asd'], ['svv','dgh','sdgh']],那么 pattern['pattern1'][0]中的所有字符串应同时播放,然后延迟 patter_config[actions().whichPattern].delay,则具有 pattern['pattern1'][1]名称的声音文件应一起播放。

所以要实现这一点,我做了上面的功能 _play()
很好的问题是它没有播放音乐文件,也没有给出任何错误,所以我可以确定问题出在哪里。

最佳答案

pattern [“pattern1”]是一个字符串数组,没有任何“instrument”属性
也许您正在尝试使用pattern_config [“pattern1”]

 var actions = function () {
return {
whichPattern: "pattern1"
}
};
var audio = new Audio();
var _play = function () {
var l = pattern_config[actions().whichPattern].instrument.length,
times_played = 0;
var p = setInterval(function () {

var x = pattern_config[actions().whichPattern][times_played];
for (var i = 0; i < x.length; i++) {
var toBePlayed = pattern_config[actions().whichPattern][times_played][i],
url = "All Drums sounds/" + toBePlayed + ".wav";
audio.src = url;
audio.play();
console.log(audio);
times_played++;
}

}, pattern_config[actions().whichPattern].delay);
if (times_played === l) {
clearInterval(p);

};

var pp = document.getElementById("play_pause");
pp.style.background = "url('graphics/pause.png') no-repeat";
pp.style.backgroundSize = "30px 28px"
audio.source = 'All Drums sounds/' + pattern['pattern1'][1][0] + '.wav';
audio.play();

};

var pattern_config = {
pattern1: {
WP_slotsCounter: 0,
instrument: ["Kick_02", "F_T_03", "Rude_cymbal_02"],
delay: 10
},
};

var pattern = {
pattern1: [['asas', 'sf', 'asd'], ['svv','dgh','sdgh']],
}

关于javascript - 使用javascript动态播放多种声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31249752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com