青いやつの進捗日記。

メモとしてべんきょうのしんちょくをかいていきます。あとで自分が検索しやすいもん

p5.js で The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. とでてマイクのデータをとれないとき

事象

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.

とでてマイクのデータをとれないときがある。
ユーザーの操作ない状態でマイクのデータをとれないと。

解決方法

以下のようにすればとれる。(コンソールにwarningは出たままだが)

function setup() {

  ~~(省略)~~

  mic = new p5.AudioIn();
}

let isStartAudio = false;

async function touchStarted() {
  if (!isStartAudio) {
    // これで画面触ったときにマイクの音声の取得を問題なくできるようになる
    await userStartAudio();
    mic.start();
    console.info("success start audio");
    isStartAudio = true;
  }
}

参考文献

himco.jp