Вы можете вспомнить правильный ответ, поместив его переменную в более высокую область видимости.
Затем вы можете проверить, совпадает ли идентификатор нажатой кнопки со случайным звуком.
Наконец, вы можете использовать аудио теги и изменить источник, чтобы воспроизводить звук - вместо использования тега embed.
HTML
Listen to the sound and click a button
fagott image
floyte image
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
На Vista это представляет правильно (т.е. тот же путь рендеринг Dropbox на моей машине) при использовании всех значений по умолчанию.
Вот пример программы, который работает на меня. Попробуйте его, и если это не представляет правильно для Вас, попытайтесь не комментировать две прокомментированных строки.
using System;
using System.Windows.Forms;
using System.Drawing;
public class AC : ApplicationContext
{
NotifyIcon ni;
public void menu_Quit(Object sender, EventArgs args)
{
ni.Dispose();
ExitThread();
}
public AC()
{
ni = new NotifyIcon();
ni.Icon = SystemIcons.Information;
ContextMenu menu = new ContextMenu();
menu.MenuItems.Add("Quit", new EventHandler(menu_Quit));
ni.ContextMenu = menu;
ni.Visible = true;
}
public static void Main(string[] args)
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
AC ac = new AC();
Application.Run(ac);
}
}