The onended event handler for the AudioScheduledSourceNode interface specifies an EventHandler to be executed when the ended event occurs on the node. This event is sent to the node when the concrete interface (such as AudioBufferSourceNode, OscillatorNode, or ConstantSourceNode) determines that it has stopped playing.

The ended event is only sent to a node configured to loop automatically when the node is stopped using its stop() method. This is the case, for example, when using an AudioBufferSourceNode with its loop property set to true.


AudioScheduledSourceNode.onended = EventHandler;


A function which is called by the browser when the ended event occurs on the AudioScheduledSourceNode. The function receives as input a single parameter, which is an object of type Event describing the event that occurred.


In this simple example, an event listener for the ended event is set up to enable a "Start" button in the user interface when the node stops playing.

node.onended = function(event) {
  document.getElementById("startButton").disabled = false;


Specification Status Comment
Web Audio API
The definition of 'onended' in that specification.
Working Draft Initial specification.

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 56.0[1] ?} 53 (53) No support 43[1] ?
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 56.0[1] 56.0[1] 53.0 (53) No support 43[1] ?

[1] Chrome and Opera don't yet implement the AudioScheduledSourceNode interface, so this event handler is instead provided directly by the concrete interface, such as ConstantSourceNode or AudioBufferSourceNode.

See also

Document Tags and Contributors

 Contributors to this page: Sheppy, jpmedley
 Last updated by: Sheppy,