JavaScript - звук не совпадает со случайными значениями - PullRequest
0 голосов
/ 20 октября 2018

У меня есть функция, которая отображает случайное слово из массива объектов неповторяющимся образом.

Моя цель - заставить его воспроизводить аудиоклип с каждым словом (этот звук будетпроизнесение слова).

Но по какой-то причине я не слышу ни звука, ни браузера, ни сообщения об ошибках.В чем может быть причина?

Вот с чем я работаю:

const p = document.getElementById("randomWord");
const myWords = [
    {
       text: "alpha",
       audio: "alpha.mp3"
    },
        {
       text: "bravo",
       audio: "bravo.mp3"
    },
        {
       text: "charlie",
       audio: "charlie.mp3"
    },
        {
       text: "delta",
       audio: "delta.mp3"
    },
    {
       text: "echo",
       audio: "echo.mp3"
    }
 ];
 let remainingWords = [];

function randomize() {
  if (remainingWords.length === 0) remainingWords = myWords.slice();
  let length = remainingWords.length;
  let randomIndex = Math.floor(Math.random() * length);
  const word = remainingWords[randomIndex];
  remainingWords.splice(randomIndex, 1);
  console.log(word);
  console.dir(p);
  p.textContent = word.text;
  document.getElementById("soundClip").play(word.audio);
}
    <audio id="soundClip">Your browser does not support the audio element.</audio>
    <button onclick="randomize()" type="button">Random Word</button>
    <p id="randomWord"></p>

1 Ответ

0 голосов
/ 20 октября 2018

Функция HTMLMediaElement.play() не принимает параметр, и вы пытаетесь передать его.

Неиспользуемые параметры не являются фатальной ошибкой в ​​JavaScript;они просто не используются, поэтому для всех намерений и целей, которые вы называете просто .play().

Поскольку элемент <audio> не имеет источника, связанного с ним, ничего не воспроизводится.

Попробуйте

const audioElement = document.getElementById("soundClip");
audioElement.src = word.audio;
audioElement.play();

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...