audio-context-constructor.js:8不允许启动AudioContext。用户在页面上进行手势操作后,必须恢复(或创建)它

时间:2019-09-11 18:25:19

标签: google-chrome browser audiocontext tone.js

我的Chrome浏览器始终会抛出此错误,这是编码和使用tone.js的新内容 请任何人帮助我查看我的代码,并告诉我是否做错了事

<-/这是我的app.js文件-/>

function sequencer(){
    const kick = new Tone.Player("./drums/PJ - Divine (Kick).wav").toDestination();
    const snare = new Tone.Player("./drums/PJ - Divine (Kick).wav").toDestination();
    let index = 0;

    Tone.Transport.scheduleRepeat(repeat, "8n");
    Tone.Transport.start();


function repeat(){
    let step = index % 8;
    let kickInputs = document.querySelector(
    `.kick input:nth-child(${step + 1 })`
    );

     let snareInputs = document.querySelector(
    `.snare input:nth-child(${step + 1 })`
    );

     let painoInputs = document.querySelector(
    `.paino input:nth-child(${step + 1 })`
    );
    document.querySelector('kickInput').addEventListener('checked', () => kick.resume());
    document.querySelector('snareInput').addEventListener('checked', () => snare.resume());

    index++;
}
}

 sequencer();
          <--this is my html file--/>

这是html文件,我希望在播放声音时    复选框/复选框被用户选中/单击,但是我得到的是     错误:不允许启动audiocontext,需要创建它或      继续........

   <div class="container">
    <div class="starter-template">
     <div class="Drum">  
     <div class="Kick"> 
        <h1>DRUM</h1>
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         </div>
        </div>


       <div class="Snare">  
        <h1>SNARE</h1>
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         <input type="checkbox">
         </div>

1 个答案:

答案 0 :(得分:0)

@Don Muyi,您可能已经发现了这个问题,但是由于Chrome和(我认为)许多其他网络浏览器不允许您在没有用户明确交互的情况下开始播放声音,因此出现了错误。

因此,您应该在您的音序器开始发出声音之前,将钩子连接到用户必须单击的start()函数上。