nagy.zsolt.hun
nagy.zsolt.hun

Reputation: 6694

html audio - manually stop audio, raising ended event

Can I stop an html audio manually in a way that it raises the "ended" event?

<script>
    var audio = new Audio();
    audio.src = "https://translate.google.com/translate_tts?&q=text&tl=en&client=a"
    audio.play();

    audio.addEventListener("ended", function() {
        console.log("audio ended");
    });

    audio.addEventListener("play", function() {
        window.setTimeout(function() {
            audio.pause();  //stop audio half sec after it starts - this doesn't raise the "ended" event!
        }, 500);
    });
</script>

Upvotes: 1

Views: 1201

Answers (1)

Joy Biswas
Joy Biswas

Reputation: 6527

You can do that but its on timeupdate event folowing code with jQuery and JS respectively

<audio ontimeupdate="watchTime4Audio(this.currentTime,this.duration)" ... ></audio>

IN HTML

//jQuery
$('audio').on('timeupdate',function(){
    if($(this).prop('currentTime')>=$(this).prop('duration')){
        //the song has ended you can put your trigger here    
    }
});

//JS
audio.addEventListener('timeupdate', function() {
    if(this.currentTime >= this.duration){
         //the song has ended you can put your trigger here    
    }
});

Using Javascript/JQuery

Upvotes: 0

Related Questions