javascripthowler.js

howler.js play sound at a specific position


Hi I would like to start playing a sound on a scecific position. The api said that I can use .pos but it doesn't start where I would like it to start

  <p>This sound last 13 sec.</p>
  <h1>Audio</h1>
  <h3><a href="#" class="val2">2:00</a></h3>
  <h3><a href="#" class="val3">3:00</a></h3>
  <h3><a href="#" class="val4">4:00</a></h3>
  <h3><a href="#" class="val20">10:00</a></h3>

My javascript.

var son = [false, "0000"]

sound = new Howl({
    urls: ['http://goldfirestudios.com/proj/howlerjs/sound.mp3'],
    autoplay: false
    });

function playSequence(events,valeur){

  //if there is no sound play the track at a certain position
  var playSound = function(valeur){
    if(son[0] == true){
      sound.stop();
      son[0] = false;
    }else{
      son[0] = true;
      sound.pos = parseInt(valeur[0]); // position at 2 sec
      sound.play();
    }
  }
   playSound(valeur);
}

//play the sound on click
$("a.val2").on('click', function(events){
    valeur = $(this).text();
    playSequence(events, valeur);
    });

Solution

  • pos is a method, not a property. For best compatibility, you would want to play it like follows (fixed in the 2.0 beta branch):

    sound.play(function(id){
        sound.pos(valeur[0], id);
    });
    

    Here's how you would do it in 2.0 (check 2.0 branch at https://github.com/goldfire/howler.js):

    var id = sound.play();
    sound.seek(valeur[0], id);
    

    If you are only playing one sound then there is no need to set the id, but it is best practice to change the position after playing when using 1.1.x.