Как соединить звук и картинку

У меня смутные воспоминания о требовании, которое вы называете fflush до fseek, но у меня нет моей копии стандарта C, доступного для проверки. (Если вы этого не сделаете, это будет определено неопределенное поведение или реализация, или что-то в этом роде.) Общий стандарт Unix указывает, что:

Если самая последняя операция, отличная от ftell () на данном потоке - fflush (), смещение файла в описании открытого файла должно быть скорректировано с учетом местоположения, указанного fseek ().

[...]

Если поток записывается и данные буферизации не были записаны в базовый файл, fseek () приведет к записи неписаных данных в файл и отметит поля st_ctime и st_mtime файла для обновления.

< / blockquote>

Это отмечено как расширение стандарта ISO C, поэтому вы не можете рассчитывать на него, кроме как на платформах Unix (или на других платформах, которые предоставляют аналогичные гарантии).

0
задан Egon Allison 18 March 2019 в 14:34
поделиться

1 ответ

Вы можете вспомнить правильный ответ, поместив его переменную в более высокую область видимости.

Затем вы можете проверить, совпадает ли идентификатор нажатой кнопки со случайным звуком.

Наконец, вы можете использовать аудио теги и изменить источник, чтобы воспроизводить звук - вместо использования тега embed.

HTML

<h2 id="feedback">Listen to the sound and click a button</h2>
<div id="fagott">fagott image</div>
<div id="floyte">floyte image</div>
<audio id="player" src="">

JS

let randomSound = ""
let fagottEl = document.querySelector("#fagott")
let floyteEl = document.querySelector("#floyte")
let sounds = ["fagott","floyte","klarinett","obo","valthorn"]
let player = document.getElementById("player")
let feedback = document.getElementById("feedback")

function chooseRandomSound(){
  randomSound = sounds[Math.floor(Math.random()*sounds.length)];

  player.src = "Vedlegg_V18/" + randomSound + ".mp3"
  player.play()
}   

fagottEl.addEventListener("click", function(e) {
  checkSound(e)
});

floyteEl.addEventListener("click", function(e) {
  checkSound(e)
});

function checkSound(e){
  if(e.target.id == randomSound) {
    feedback.innerHTML = "Correct!"
  } else {
    feedback.innerHTML = "Wrong, it was a " + randomSound
  }
}

chooseRandomSound()

Вы можете попробовать рабочий код на JSFiddle

0
ответ дан Kokodoko 18 March 2019 в 14:34
поделиться
Другие вопросы по тегам:

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