Heippa,
Moikka, minulla on ohjelma joka soittaa animaation yhteydessä räjäytys ääni efektin.
Minun ongelma on että, minulla on ohjelmoinnissa vaihe, kun yritän karsia selaimen tekemät varoitukset ja virheet pois.
Niin, kun tämä ääni efekti soitetaan, jos pelaaja ei ole painana ruutua, eli aktivoinut tätä canvas tai body tai html pintaa, niin, selain tuottaa virheilmoituksen.
Tässä virheilmoitus -
cSoundFX.js:1 Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD
--
Javascriptissä pitää ruutu aktivoida hiiri napilla, ennen, kuin ääni efektejä soitetaan, jos pelaaja ei javascritpissä aktivoi elementtejä, niin, ääni efektejä ei soiteta, ja annetaan tuo virheilmoitus.
Minä olen yrittänä googlata vastausta, mutta, en ole osannut korjata ongelmaani, minä tarvitsen jonkin keinon, jossa tietää, että, onko canvas element jo aktiivinen, tai sitten html tai body, en tarkkaan tiedä mitä pitää olla aktiivisena, kun tuo ääni efekti virheilmoitus annetaan, jotakin aktiivisuutta pitää ruudulla olla, muuten tuo virheilmoitus.
Kuinka tarkistaa, että, ruutu on aktiivisena, minä tarvitsen jonkin tarkistuksen, jonka jälkeen vasta soittaa ääni efektejä ?
Selaimet eivät näytä mitään muuta varoitusta taikka virhettä, minun koodistani, kuin tämä että pelaaja ei vielä ole aktivoinut ruutua, kun ääni efekti soitetaan :) :)..
Kiitos taas ..
:) :) :)
--
Ratkaistu,
Joo, minä keksin ratkaisun sittenkin itse, minulla monta vuotta oli tämä ongelma.
Minä yritin ratkoa ongelmaa, tarkastelemalla, milloinka pelaaja hiiri klikkaa ruutua ja sitten tarkastan elementin focuksen.
Mutta, ratkaisu oli vielä helpompi.
--
Minä laitan boolean = false, ja kun mitä tahansa hiiri klikkiä toimitetaan, niin, minä laitan tämän boolean = true tilaan, ja sitten vain aina ennen play soundia, niin, tarkastan tätä booleania.
Eli, nyt sitten on ilman virheitä ohjelmani, kiitosta vaan, vaikka ratkaisin itse tämän, yritin hasfocus() kanssa, ratkoa aiemmin, mutta, olikin tälläinen tämä ratkaisuni.
Kiitos..
:) :) :)
--
Aihe on jo aika vanha, joten et voi enää vastata siihen.