Player de Áudio do WhatsApp

1. Baixar os icones em SVG e upar no site destino: play, pause, microfone, loading, erro.

Se de erro ao upar os arquivos SVG, então instalar o plugin SAFE SVG

2. Upar os arquivos de áudio em formato mp3 para o site

3. Insira o widget HTML na seção onde vc quer que apareça o player e cole o código abaixo:

				
					<div class="audio-players-container" data-audio="1"></div>
<div class="audio-players-container verde" data-audio="2"></div>
<div class="audio-players-container" data-audio="3"></div>
				
			

4. Insira o código no campo CSS personalizado do widget HTML acima:

				
					selector .elementor-widget-container{
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.audio-players-container{
    display: flex;
    justify-content: start;
}

.verde{
    display: flex;
    justify-content: end;
}

.audio-player {
  --cor-destaque: #00e5c0;
  --cor-fundo: #1E272D;
  --cor-texto: #c5c6c8;
  --percentual-reproduzido: 0;
  --current-time: "00:00";
  position: relative;
  background: var(--cor-fundo);
  display: inline-flex;
  min-width: clamp(230px, 100%, 340px) !important; /*alterar largura do player aqui*/
  max-width: 100%;
  border-radius: 0 0.4rem 0.4rem 0.4rem;
  padding: 0.4rem 0.6rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.audio-player:before {
  position: absolute;
  content: "";
  top: 0px;
  left: -10px;
  width: 20px;
  height: 20px;
  background: var(--cor-fundo);
  aspect-ratio: 1;
  clip-path: polygon(0 0,100% 0,100% 100%);
}


.audio-player .line::after {
  content: var(--current-time);
  position: absolute;
  right: 17px;
  bottom: -8px;
  font-size: 0.6rem;
  color: var(--cor-texto);
}

.verde .audio-player .line::after {
    right: 6px
}


.audio-player + .audio-player {
  margin-top: 1rem;
}

.audio-player .player {
  flex: 1;
  display: flex;
}

.audio-player .player .btn-play {
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0 1rem 0 0.4rem;
position: relative;
    top: 2px;
}

.audio-player .player .btn-play:disabled{
  cursor: default;
}

.audio-player .player .btn-play span {
  color: var(--cor-texto);
  font-size: 38px;
  opacity: 0.8;
}

.audio-player .player .btn-play .icon {
    display: none;
}

.audio-player .player .btn-play .icon-play {
    display: inline-block;
}

.audio-player.playing .player .btn-play .icon-play {
    display: none;
}

.audio-player.playing .player .btn-play .icon-pause {
    display: inline-block;
}

.audio-player.loading .player .btn-play .icon-loop {
    display: inline-block;
}


.audio-player.error .player .btn-play .icon-error {
    display: inline-block;
}


@-webkit-keyframes load{
  to{
    transform: rotate(360deg);
  }
}

@keyframes load{
  to{
    transform: rotate(360deg);
  }
}

.audio-player.loading .player .btn-play,
.audio-player.error .player .btn-play{
  pointer-events: none;
}

.audio-player.loading .player .btn-play span{
  -webkit-animation: load 1s linear infinite;
          animation: load 1s linear infinite;
}

.audio-player.loading .player .btn-play .icon-loop {
  display: inline-block;
}

.audio-player .player .timeline {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  padding-bottom: 0.2rem;
}

.audio-player .player .timeline .line {
  --line-height: 0.24rem;
  flex: 1;
  display: flex;
  align-items: center;
  position: relative;
}

.audio-player .player .timeline .line:before {
  content: "";
  width: calc(var(--percentual-reproduzido) * 0.92);
  position: absolute;
  background: var(--cor-destaque);
  height: var(--line-height);
  border-radius: calc(var(--line-height) / 2);
}

.audio-player .player .timeline .line input[type="range"] {
  flex: 1;
  all: unset;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: initial !important;
  border: none;
  outline: none;
  width: 92%;
  position: relative;
}

.audio-player
  .player
  .timeline
  .line
  input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
          appearance: none;
  background: var(--cor-destaque);
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  margin-top: calc(var(--line-height) * -1.4);
}

.audio-player
  .player
  .timeline
  .line
  input[type="range"]::-moz-range-thumb {
  all: unset;
  -moz-appearance: none;
       appearance: none;
  border: 0;
  background: var(--cor-destaque);
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  margin-top: calc(var(--line-height) * -1.4);
}

.audio-player
  .player
  .timeline
  .line
  input[type="range"]::-ms-thumb {
  appearance: none;
  background: var(--cor-destaque);
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  margin-top: calc(var(--line-height) * -1.4);
}


.audio-player
  .player
  .timeline
  .line
  input[type="range"]::-webkit-slider-runnable-track {
  background: rgba(255, 255, 255, 0.2);
  height: var(--line-height);
  border-radius: calc(var(--line-height) / 2);
}

.audio-player
  .player
  .timeline
  .line
  input[type="range"]::-moz-range-track {
  background: rgba(255, 255, 255, 0.2);
  height: var(--line-height);
  border-radius: calc(var(--line-height) / 2);
}

.audio-player
  .player
  .timeline
  .line
  input[type="range"]::-ms-track {
  background: rgba(255, 255, 255, 0.2);
  height: var(--line-height);
  border-radius: calc(var(--line-height) / 2);
}

.audio-player .player .timeline .data {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.6rem;
  color: var(--cor-texto);
  position: absolute;
  width: 100%;
  bottom: -5px;
}

.audio-player .player .timeline .data .current-time::before {
  content: var(--tempo-atual);
}

.audio-player .player .timeline .data .time {
  display: flex;
  align-items: center;
  visibility: hidden;
}

.audio-player .player .timeline .data .time span {
  font-size: 1rem;
  margin-left: 0.4rem;
  color: var(--cor-destaque);
}

.audio-player .user {
    position: relative;
    width: 60px;
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.audio-player .user img {
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  background: transparent !important;
}

.audio-player .user span {
  position: absolute;
  left: 0;
  bottom: 0;
  color: var(--cor-destaque);
  transform: translateX(-50%);
  font-size: 1.6rem;
  text-shadow: -1px -1px 0 var(--cor-fundo),
    1px -1px 0 var (--cor-fundo),
    -1px 1px 0 var(--cor-fundo),
    1px 1px 0 var(--cor-fundo);
}

.mic-icon{
    position: absolute;
    overflow: visible;
    padding: 10px 0;
    left: -5px;
    bottom: -5px;
    width: 15px;
}


.verde .audio-player {
  --cor-destaque: #4FB2E5;
  --cor-fundo: #035142;
  border-radius: 0.4rem 0 0.4rem 0.4rem;
  position: relative;
  flex-direction: row-reverse;
  gap: 1rem;
}

.verde .audio-player:before {
  left: inherit;
  right: -10px;
  clip-path: polygon(0 0, 100% 0, 0% 100%);
}

.verde .audio-player .user {
    position: relative;
    width: 60px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
}


.verde .mic-icon{
left: inherit;
right: -5px;
}

.verde .speed-control{
    background: #093730 !important;
}

.verde .audio-player .player .timeline .line input[type="range"] {
    width: 97% !important;
}

.verde .audio-player .player .timeline .line:before {
    width: calc(var(--percentual-reproduzido) * 0.97);
}

.audio-player .speed-control {
    display: none;
    cursor: pointer;
    background: #171F24;
    padding: 4px 0;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #fff;
    text-align: center;
    width: 50px;
    position: relative;
    top: -1px
}

.audio-player.playing .user img {
display: none;
}

.audio-player.playing .speed-control {
display: block;
}
				
			

5. Insira o widget HTML no rodapé e cole o código Javascript abaixo:

				
					<script>
document.addEventListener("DOMContentLoaded", function () {
  const containersPlayersAudio = document.querySelectorAll(
    ".audio-players-container"
  );

  const urlsAudios = [
    "URL_DO_AUDIO_1_AQUI",
    "URL_DO_AUDIO_2_AQUI",
    "URL_DO_AUDIO_3_AQUI",
  ];

  const imagensUsuarios = [
    "URL_DA_FOTO_1_AQUI",
    "URL_DA_FOTO_2_AQUI",
    "URL_DA_FOTO_3_AQUI",
  ];

  const iconesSrc = {
    play: "URL_DO_ÍCONE_DE_PLAY_AQUI",
    pause: "URL_DO_ÍCONE_DE_PAUSE_AQUI",
    loop: "URL_DO_ÍCONE_DE_LOADING_AQUI",
    error: "URL_DO_ÍCONE_DE_ERRO_AQUI",
  };

  function formatarTempoParaExibicao(segundos) {
    const milissegundos = segundos * 1000;
    return new Date(milissegundos).toISOString().substr(14, 5);
  }

  function lidarComErroAudio(audio) {
    const erros = {
      1: "Processo abortado pelo usuário",
      2: "Ocorreu um erro no download",
      3: "Erro na execução do áudio",
      4: "Formato de áudio não suportado",
    };
    const mensagemErro = `Erro: ${erros[audio.error.code]}`;
    console.error(mensagemErro);
  }

  function setMessageDate(audioPlayer) {
    setInterval(() => {
      const currentDate = new Date();
      const currentDateTimeString = currentDate.toLocaleTimeString([], {
        hour: "2-digit",
        minute: "2-digit",
      });
      audioPlayer.style.setProperty(
        "--current-time",
        `'${currentDateTimeString}'`
      );
    }, 1000);
  }

  function criarPlayerAudio(urlAudio, container, imagemUsuario) {
    const playerAudio = document.createElement("div");
    playerAudio.className = "audio-player";
    playerAudio.dataset.url = urlAudio;

    const divPlayer = document.createElement("div");
    divPlayer.className = "player";

    const btnPlayToggle = document.createElement("button");
    btnPlayToggle.type = "button";
    btnPlayToggle.className = "btn-play";

    for (const [key, src] of Object.entries(iconesSrc)) {
      const icone = document.createElement("img");
      icone.className = `icon icon-${key}`;
      icone.src = src;
      icone.alt = key.charAt(0).toUpperCase() + key.slice(1);
      btnPlayToggle.appendChild(icone);
    }

    const linhaDoTempo = document.createElement("div");
    linhaDoTempo.className = "timeline";
    const linha = document.createElement("div");
    linha.className = "line";
    const inputRange = document.createElement("input");
    inputRange.setAttribute("dir", "ltr");
    inputRange.type = "range";
    inputRange.min = "0";
    inputRange.max = "100";
    inputRange.value = "0";
    linha.appendChild(inputRange);
    linhaDoTempo.appendChild(linha);

    const divDados = document.createElement("div");
    divDados.className = "data";
    const divTempoAtual = document.createElement("div");
    divTempoAtual.className = "current-time";
    divDados.appendChild(divTempoAtual);
    divTempoAtual.textContent = "00:00";
    const divTempoTotal = document.createElement("div");
    divTempoTotal.className = "time";
    divDados.appendChild(divTempoTotal);

    linhaDoTempo.appendChild(divDados);

    divPlayer.appendChild(btnPlayToggle);
    divPlayer.appendChild(linhaDoTempo);
    playerAudio.appendChild(divPlayer);

    const divUsuario = document.createElement("div");
    divUsuario.className = "user";
    const imgUsuario = document.createElement("img");
    imgUsuario.src = imagemUsuario;
    divUsuario.appendChild(imgUsuario);

    const divVelocidade = document.createElement("div");
    divVelocidade.className = "speed-control";
    divVelocidade.textContent = "1,0x";
    divUsuario.appendChild(divVelocidade);

    const iconeMicrofone = document.createElement("img");
    iconeMicrofone.src =
      "URL_DO_ÍCONE_DE_MICROFONE_AQUI";
    iconeMicrofone.className = "mic-icon";
    iconeMicrofone.alt = "Mic";
    divUsuario.appendChild(iconeMicrofone);

    playerAudio.appendChild(divUsuario);
    container.appendChild(playerAudio);

    const audio = new Audio(urlAudio);
    let currentSpeedIndex = 0;
    const speeds = [1.0, 1.5, 2.0];

    const updateSpeed = () => {
      audio.playbackRate = speeds[currentSpeedIndex];
      divVelocidade.textContent = `${speeds[currentSpeedIndex]
        .toFixed(1)
        .replace(".", ",")}x`;
    };

    divVelocidade.addEventListener("click", () => {
      currentSpeedIndex = (currentSpeedIndex + 1) % speeds.length;
      updateSpeed();
    });

    btnPlayToggle.addEventListener("click", () => {
      if (audio.paused || audio.ended) {
        audio.play();
        playerAudio.classList.add("playing");
        divUsuario.classList.add("playing");
        imgUsuario.style.display = "none";
        divVelocidade.style.display = "block";
      } else {
        audio.pause();
        playerAudio.classList.remove("playing");
        divUsuario.classList.remove("playing");
        imgUsuario.style.display = "block";
        divVelocidade.style.display = "none";
      }
    });

    inputRange.addEventListener("input", (e) => {
      const percent = e.target.value;
      audio.currentTime = (percent / 100) * audio.duration;
    });

    audio.addEventListener("play", () => {
      playerAudio.classList.add("playing");
      divUsuario.classList.add("playing");
      imgUsuario.style.display = "none";
      divVelocidade.style.display = "block";
    });

    audio.addEventListener("pause", () => {
      playerAudio.classList.remove("playing");
      divUsuario.classList.remove("playing");
      imgUsuario.style.display = "block";
      divVelocidade.style.display = "none";
    });

    audio.addEventListener("ended", () => {
      playerAudio.classList.remove("playing");
      divUsuario.classList.remove("playing");
      imgUsuario.style.display = "block";
      divVelocidade.style.display = "none";
      audio.currentTime = 0;
      audio.dispatchEvent(new Event("timeupdate"));
      if (audio.currentTime === 0) {
        divTempoAtual.textContent = formatarTempoParaExibicao(audio.duration);
      } else {
        const currentTime = formatarTempoParaExibicao(audio.currentTime);
        divTempoAtual.textContent = currentTime;
      }
    });

    audio.addEventListener("timeupdate", () => {
      const percent = (audio.currentTime / audio.duration) * 100;
      inputRange.value = percent;
      linha.style.setProperty("--percentual-reproduzido", `${percent}%`);

      const currentTime = formatarTempoParaExibicao(audio.currentTime);
      if (audio.currentTime === 0) {
        divTempoAtual.textContent = formatarTempoParaExibicao(audio.duration);
      } else {
        const currentTime = formatarTempoParaExibicao(audio.currentTime);
        divTempoAtual.textContent = currentTime;
      }
    });

    audio.addEventListener("loadedmetadata", () => {
      const duration = formatarTempoParaExibicao(audio.duration);
      if (audio.currentTime === 0) {
        divTempoAtual.textContent = formatarTempoParaExibicao(audio.duration);
      } else {
        const currentTime = formatarTempoParaExibicao(audio.currentTime);
        divTempoAtual.textContent = currentTime;
      }
      divTempoTotal.textContent = duration;
    });

    audio.addEventListener("error", () => {
      lidarComErroAudio(audio);
    });

    setMessageDate(playerAudio);
  }

  containersPlayersAudio.forEach((container, index) => {
    const indiceAudio = parseInt(container.dataset.audio) - 1;
    if (indiceAudio >= 0 && indiceAudio < urlsAudios.length) {
      const urlAudio = urlsAudios[indiceAudio];
      const imagemUsuario = imagensUsuarios[indiceAudio];
      criarPlayerAudio(urlAudio, container, imagemUsuario);
    } else {
      console.error(
        `Índice de áudio inválido para o container: ${indiceAudio}`
      );
    }
  });
});
</script>

				
			

EXTRA: Javascript para reproduzir todos os áudios automaticamente, um em seguida do outro

				
					<script>
document.addEventListener("DOMContentLoaded", function () {
  const containersPlayersAudio = document.querySelectorAll(".audio-players-container");
  const urlsAudios = [
    "URL_DO_AUDIO_1_AQUI",
    "URL_DO_AUDIO_2_AQUI",
    "URL_DO_AUDIO_3_AQUI",
  ];

  const imagensUsuarios = [
    "URL_DA_FOTO_1_AQUI",
    "URL_DA_FOTO_2_AQUI",
    "URL_DA_FOTO_3_AQUI",
  ];

  const iconesSrc = {
    play: "URL_DO_ÍCONE_DE_PLAY_AQUI",
    pause: "URL_DO_ÍCONE_DE_PAUSE_AQUI",
    loop: "URL_DO_ÍCONE_DE_LOADING_AQUI",
    error: "URL_DO_ÍCONE_DE_ERRO_AQUI",
  };

  function formatarTempoParaExibicao(segundos) {
    const milissegundos = segundos * 1000;
    return new Date(milissegundos).toISOString().substr(14, 5);
  }

  function lidarComErroAudio(audio) {
    const erros = {
      1: "Processo abortado pelo usuário",
      2: "Ocorreu um erro no download",
      3: "Erro na execução do áudio",
      4: "Formato de áudio não suportado",
    };
    const mensagemErro = `Erro: ${erros[audio.error.code]}`;
    console.error(mensagemErro);
  }

  function setMessageDate(audioPlayer) {
    setInterval(() => {
      const currentDate = new Date();
      const currentDateTimeString = currentDate.toLocaleTimeString([], {
        hour: "2-digit",
        minute: "2-digit",
      });
      audioPlayer.style.setProperty(
        "--current-time",
        `'${currentDateTimeString}'`
      );
    }, 1000);
  }

  function criarPlayerAudio(urlAudio, container, imagemUsuario, audioIndex) {
    const playerAudio = document.createElement("div");
    playerAudio.className = "audio-player";
    playerAudio.dataset.url = urlAudio;

    const divPlayer = document.createElement("div");
    divPlayer.className = "player";

    const btnPlayToggle = document.createElement("button");
    btnPlayToggle.type = "button";
    btnPlayToggle.className = "btn-play";

    for (const [key, src] of Object.entries(iconesSrc)) {
      const icone = document.createElement("img");
      icone.className = `icon icon-${key}`;
      icone.src = src;
      icone.alt = key.charAt(0).toUpperCase() + key.slice(1);
      btnPlayToggle.appendChild(icone);
    }

    const linhaDoTempo = document.createElement("div");
    linhaDoTempo.className = "timeline";
    const linha = document.createElement("div");
    linha.className = "line";
    const inputRange = document.createElement("input");
    inputRange.setAttribute("dir", "ltr");
    inputRange.type = "range";
    inputRange.min = "0";
    inputRange.max = "100";
    inputRange.value = "0";
    linha.appendChild(inputRange);
    linhaDoTempo.appendChild(linha);

    const divDados = document.createElement("div");
    divDados.className = "data";
    const divTempoAtual = document.createElement("div");
    divTempoAtual.className = "current-time";
    divDados.appendChild(divTempoAtual);
    divTempoAtual.textContent = "00:00";
    const divTempoTotal = document.createElement("div");
    divTempoTotal.className = "time";
    divDados.appendChild(divTempoTotal);

    linhaDoTempo.appendChild(divDados);

    divPlayer.appendChild(btnPlayToggle);
    divPlayer.appendChild(linhaDoTempo);
    playerAudio.appendChild(divPlayer);

    const divUsuario = document.createElement("div");
    divUsuario.className = "user";
    const imgUsuario = document.createElement("img");
    imgUsuario.src = imagemUsuario;
    divUsuario.appendChild(imgUsuario);

    const divVelocidade = document.createElement("div");
    divVelocidade.className = "speed-control";
    divVelocidade.textContent = "1,0x";
    divUsuario.appendChild(divVelocidade);

    const iconeMicrofone = document.createElement("img");
    iconeMicrofone.src =
      "URL_DO_ÍCONE_DE_MICROFONE_AQUI";
    iconeMicrofone.className = "mic-icon";
    iconeMicrofone.alt = "Mic";
    divUsuario.appendChild(iconeMicrofone);

    playerAudio.appendChild(divUsuario);
    container.appendChild(playerAudio);

    const audio = new Audio(urlAudio);
    let currentSpeedIndex = 0;
    const speeds = [1.0, 1.5, 2.0];

    const updateSpeed = () => {
      audio.playbackRate = speeds[currentSpeedIndex];
      divVelocidade.textContent = `${speeds[currentSpeedIndex]
        .toFixed(1)
        .replace(".", ",")}x`;
    };

    divVelocidade.addEventListener("click", () => {
      currentSpeedIndex = (currentSpeedIndex + 1) % speeds.length;
      updateSpeed();
    });

    btnPlayToggle.addEventListener("click", () => {
      if (audio.paused || audio.ended) {
        audio.play();
        playerAudio.classList.add("playing");
        divUsuario.classList.add("playing");
        imgUsuario.style.display = "none";
        divVelocidade.style.display = "block";
      } else {
        audio.pause();
        playerAudio.classList.remove("playing");
        divUsuario.classList.remove("playing");
        imgUsuario.style.display = "block";
        divVelocidade.style.display = "none";
      }
    });

    inputRange.addEventListener("input", (e) => {
      const percent = e.target.value;
      audio.currentTime = (percent / 100) * audio.duration;
    });

    audio.addEventListener("play", () => {
      playerAudio.classList.add("playing");
      divUsuario.classList.add("playing");
      imgUsuario.style.display = "none";
      divVelocidade.style.display = "block";
    });

    audio.addEventListener("pause", () => {
      playerAudio.classList.remove("playing");
      divUsuario.classList.remove("playing");
      imgUsuario.style.display = "block";
      divVelocidade.style.display = "none";
    });

    audio.addEventListener("ended", () => {
      playerAudio.classList.remove("playing");
      divUsuario.classList.remove("playing");
      imgUsuario.style.display = "block";
      divVelocidade.style.display = "none";
      audio.currentTime = 0;
      audio.dispatchEvent(new Event("timeupdate"));
      if (audio.currentTime === 0) {
        divTempoAtual.textContent = formatarTempoParaExibicao(audio.duration);
      } else {
        const currentTime = formatarTempoParaExibicao(audio.currentTime);
        divTempoAtual.textContent = currentTime;
      }

      if (audioIndex < containersPlayersAudio.length - 1) {
        const nextContainer = containersPlayersAudio[audioIndex + 1];
        const nextPlayer = nextContainer.querySelector('.audio-player');
        if (nextPlayer) {
          nextPlayer.querySelector('.btn-play').click(); 
        }
      }
    });

    audio.addEventListener("timeupdate", () => {
      const percent = (audio.currentTime / audio.duration) * 100;
      inputRange.value = percent;
      linha.style.setProperty("--percentual-reproduzido", `${percent}%`);

      const currentTime = formatarTempoParaExibicao(audio.currentTime);
      if (audio.currentTime === 0) {
        divTempoAtual.textContent = formatarTempoParaExibicao(audio.duration);
      } else {
        const currentTime = formatarTempoParaExibicao(audio.currentTime);
        divTempoAtual.textContent = currentTime;
      }
    });

    audio.addEventListener("loadedmetadata", () => {
      const duration = formatarTempoParaExibicao(audio.duration);
      if (audio.currentTime === 0) {
        divTempoAtual.textContent = formatarTempoParaExibicao(audio.duration);
      } else {
        const currentTime = formatarTempoParaExibicao(audio.currentTime);
        divTempoAtual.textContent = currentTime;
      }
      divTempoTotal.textContent = duration;
    });

    audio.addEventListener("error", () => {
      lidarComErroAudio(audio);
    });

    setMessageDate(playerAudio);
  }

  containersPlayersAudio.forEach((container, index) => {
    const indiceAudio = parseInt(container.dataset.audio) - 1;
    if (indiceAudio >= 0 && indiceAudio < urlsAudios.length) {
      const urlAudio = urlsAudios[indiceAudio];
      const imagemUsuario = imagensUsuarios[indiceAudio];
      criarPlayerAudio(urlAudio, container, imagemUsuario, index);
    } else {
      console.error(
        `Índice de áudio inválido para o container: ${indiceAudio}`
      );
    }
  });
});
</script>
				
			

RESULTADO