Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HTML5 audio - get time played of a sound object (howler.js)

Im playing some HTML5 audio using the Howler.js library.

Currently im able to determine the total length of the audio file with sound.duration(); however im not sure how to create a timer to show how much time that has been played.

I create a simple sound object like so:

var sound = new Howl({
    src: ['sound.ogg', 'sound.mp3', 'sound.wav'],
    autoplay: true,
    loop: false,
    volume: 1,
    onload: function() {
        var totalSoundDuration = sound.duration();
    },
    onplay: function(getSoundId) {
        //sound playing
    },
    onend: function() {
        //sound play finished
    }
});

I can't seem to find any method within the library (?) to check for currentTime so I can update my timer function.

An alternative route could simply be to trigger/toggle a setInterval upon onplay: like:

var currentTimeTracker=setInterval(function () {myTimer()}, 1000);

function myTimer() {
    timePlayed++;

    $("#time" ).html(timePlayed);
}

Not sure if that would be a good approach? Any suggestions?

Howler.js ref: https://github.com/goldfire/howler.js/tree/2.0#global-core-properties

like image 978
user1231561 Avatar asked Dec 15 '14 10:12

user1231561


1 Answers

According to http://goldfirestudios.com/blog/104/howler.js-Modern-Web-Audio-Javascript-Library sound.pos() should get the current position. The posmethod can get or set, depending on whether you pass through the optional position parameter.

like image 167
athms Avatar answered Oct 03 '22 07:10

athms