Mikko Ohtamaa
Mikko Ohtamaa

Reputation: 83328

Setting initial <audio> play start position

How one can set the start position of media when play button of element is pressed?

I have tried to set currentTime (audio.currentTime = musicStartTime) in the following events, but they all seem to be ignored, or lead to a infinite event loop

... or do I need to create 100% custom control UI just for this use case?

Tested with Chrome, FF.

Sample code::

    $(this.audio).bind("load", function() {
        audio.currentTime = musicStartTime;
        console.log("Loaded:" + src);
    });

    $(this.audio).bind("play", function() {
        console.log("Trying to set start time:" + musicStartTime);
        audio.currentTime = musicStartTime;
    });

    audio.src = src;

Upvotes: 3

Views: 3845

Answers (1)

Ian Devlin
Ian Devlin

Reputation: 18870

Try something like the following, which doesn't use jQuery:

<audio id="myAudioElement" src="myFile.mp3" type="audio/mp3"></audio>

var audio = document.getElementById("myAudioElement");

var musicStartTime = 5;

audio.addEventListener('canplaythrough', function() { 
   audio.currentTime = musicStartTime;
   console.log("Loaded:" + src);
}, false);

Upvotes: 2

Related Questions