@MRcracker

Как запустить автоматическое воспроизведение звуков?

Мне нужно запустить звуки автоматически на Реакте. Для того, чтобы запустить звуки я использую не стандартный хук useSound. Он создает кнопку и по клику на данную кнопку звук запускается. Я сделал триггер для того, чтобы автоматически запускать клик и сделал задержку между звуками.

Звуки приходят в ввиду массива. Поэтому я прохожусь по массиву и создаю несколько кнопок на которые должны быть нажатия. Подскажите, как для каждой кнопки создать const [play] = useSound("/static/1.mp3"); и свой уникальный id, чтобы все кнопки создавались автоматически и проигрывались?

import React, { useState, useEffect } from "react";

import useSound from "use-sound";

export default function Play(props) {

  const arr = ['./1.mp3', '/static/2.mp3', '/static/3.mp3']

  function Button() {
    return props.newResult.map(() => (
      <button className={styles.buttonPlay} id='button3'>
        {props.newResult}
      </button>
    ));
  }

  const Play = () => {
    const [play] = useSound("/static/1.mp3"); 
    return (
      <>
        <button className={styles.buttonPlay} id='button' onClick={play}>
          Пациент
        </button>
      </>
    );
  };

  async function Auto() {
    await new Promise(function (s) {
      setTimeout(s, 1000);
    });
    document.querySelector("#button").click();

    await new Promise(function (s) {
      setTimeout(s, 1000);
    });
  }

  useEffect(() => {
    Auto();
  }, []);

  return (
    <>
      {Play()}
    </>
  );
}
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы