2015.11.01 11:43
zagadka programistyczna: czemu to gra tylko raz?

Oto zagadka programistyczna. Obejrzyj ten program: https://jsfiddle.net/jj95xpxn/1/ . Powiedz, dlaczego on odgrywa to nagranie tylko raz, a nie trzy razy. I napraw. Odpowiedzi w rot13, proszę.
function playSound(fileName) {
  var deferred = jQuery.Deferred();
  var sound = new Audio(fileName);
  $(sound).bind('ended', function () {
    deferred.resolve();
  });
  sound.play();
  return deferred.promise();
}

function playSounds(sounds) {
  var playFinishedPromise = playSound(sounds[0]);
  var i = 1;
  while (i < sounds.length) {
    playFinishedPromise = playFinishedPromise.then(function () {
      return playSound(sounds[i]);
    });
    ++i;
  }
}

$(function () {
  var ogg = 'https://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg';
  playSounds([ogg, ogg, ogg]);
});


komentarze:
2015.11.10 08:18 ŁZ

uggcf://wfsvqqyr.arg/dcjox7aY/1/ ;)


2016.01.17 10:18 fdreger

Nie rotuję, bo to chyba nie podpowiedź, że wszystko byłoby łatwiejsze, gdyby trzymać się funkcji - i w playSounds zrobić:

sounds.reduce(function(a, b){
  return a.then(function(){
    return playSound(s)
  })
}, Promise.resolve())




2016.01.17 10:20 Piotrek

@fdreger: a mówiłeś, że nie masz w domu Internetu.



ksywa:

tu wpisz cyfrę cztery: (tu wpisz cyfrę cztery: (to takie zabezpieczenie antyspamowe))

komentarze wulgarne albo co mi się nie spodobają będę kasował


powrót na stronę główną

RSS