JSiga helide laadimise probleem Chromes

  • MP 10 a

    Kood:

    $("[data-play-sound]").mouseup(function(){
    var text = $(this).attr("data-play-sound");
    var audio = new Audio("sounds/"+text+".mp3");
    audio.play();
    });

    Probleem:

    Chromes ei lae tihtipeale helisid ära ja annab Network debus Method: GET, status: (canceled).

    Lahendus:

    Kui tühjendan Chrome cache, töötab mõnda aega uuesti, aga see cache tühjendamine on üsna tüütu. Kas kellegil on kogemust, paremaid ettepanekuid?

    Googeldades leidsin veel:

    http://productforums.google.com/forum/#!topic/chrome/8-RXiHZq5d0%5B1-25-false%5D

    21. juuli 2013 - 21:57:36 · Otselink

  • infira 10 a

    esiteks sa võiks panna üldse
    var audio = new Audio("sounds/"+text+".mp3");
    sinna sisse täispika aadressi.

    kui tahad et chrome iga kord cache uuendaks siis on selline võimalus

    var audio = new Audio("http:/www.sound.ee/sounds/"+text+".mp3?randomNr"+Math.random());
    see sunnib browserit cache uuendama

    22. juuli 2013 - 17:10:24 · Otselink

  • MP 10 a

    1. Täispika aadressi all pead silmas domeeni või/ja failirada? Mis siis saab, kui domeen või failrada tulevikus muutuvad? Seetõttu eelistan relatiivset failirada.

    2. Mulle väga meeldib puhverdamine, eriti kui pidada silmas, et mobiilirakendused jooksevad enamasti seadmetel, mil pole kiiret võrguühendust. Hea meelega lahendaksin probleemi kavalamalt.

    26. juuli 2013 - 03:49:25 · Otselink

  • Jah 10 a

    Täitsa pimesi võiks proovida näiteks..

    var audio = {};

    $("[data-play-sound]").mouseup(function(){
    var text = $(this).attr("data-play-sound");
    if(!audio[text]) audio[text] = new Audio("sounds/"+text+".mp3");
    audio[text].play();
    });

    26. juuli 2013 - 17:19:02 · Otselink

  • on mingi mõte seda audio objekti iga kord uuesti tekitada? tekita ennem ära ja pärast ainult käivita

    26. juuli 2013 - 23:01:48 · Otselink

  • MP 10 a

    Mehed, tänud kaasa mõtlemast, aga ma ei tunne, et teie vastused mu küsimust ammendavad. Teen uut Audio tüüpi objekti, sest nii on võimalik lühikese vahega erinevaid helisid, teineteisega kattuvalt esitada. (Anton, kas mingisugune GC heli mängimise lõppemisel mäluvabastusega ei tegele? Mis see võit iga kord sama kasutamisel on?)

    Koodi ennast näeb (kolme õhtu töö, kood vajab veel refactordamist ja vigadeparandust, aga üldpilt on selline - esimest korda elus kirjutasin JS-i rohkem kui kolm rida korraga)

    https://github.com/mxrguspxrt/aabitsaraamat
    https://github.com/mxrguspxrt/aabitsaraamat/blob/master/htmlsite/source/js/aabitsaraamat.js

    Kui keegi tahab panustada, abi on teretulnud! Hetkel joonistab üks hea inimene uusi pilte, hääl asendub kindlasti ja sõnavara täieneb ka!

    27. juuli 2013 - 01:45:47 · Otselink

  • kui sul on objekti skoobis defineeritud ja sa objekti ei tapa siis ei kao ju kuskile. Muutujate ettedefineerimine on elementaarne vist igas keeles ja sisu ettetõmbamine kõige elementaarsem jõudluse tõstmise viis rakendustes.

    kui sa lood uue objekti hetkel iga kord ja määrad ressursi mida laadida, siis hakataksegi seda reaalselt iga kord laadima või cachest otsima (sõltuvalt cache seadetest) ja kui sul praegu jääb tummaks, siis kas ei jõuta piisavalt kiirelt laadida või võtab objekti loomine liiga kaua aega vms et sa ei jõua seda maha mängida.

    ja kui js ei ole sinu jaoks, otsi googlist javascript audio library , include ja kasuta. http://buzz.jaysalvat.com/ oli üks esimestest tulemustest, teisi ei viitsinud vaadata.

    29. juuli 2013 - 10:18:52 · Otselink