The HTMLAudioElement interface provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface.


No specific property; inherits properties from its parent, HTMLMediaElement, and from HTMLElement.


Inherits methods from its parent, HTMLMediaElement, and from HTMLElement.



mySound = new Audio([URLString]);


Constructor for audio elements. The preload property of the returned object is set to auto and the src property is set to the argument value. The browser begins asynchronously selecting the resource before returning the object.

Note: An Audio element constructed with new Audio() won't be garbage collected as long as playback is in progress. It will continue playing and be audible until pause() is called or playback finishes.


URLString (expected type: DOMString; optional)
The src property of the constructed HTMLAudioElement.


Regular methods

Name & Arguments Return Description
mozCurrentSampleOffset() unsigned long long Indicates the current offset of the audio stream that was created by a call to mozWriteAudio(). This offset is specified as the number of samples since the beginning of the stream.

mozSetup(in PRUint32 channels, in PRUint32 rate)

void Sets up the audio stream for writing. You specify as parameters the number of channels (1 for mono or 2 for stereo), then the sampling rate (44100 for 44.1kHz, for example).
mozWriteAudio(in jsval data) unsigned long Writes audio into the stream at the current offset. Returns the number of bytes actually written to the stream.


Basic usage

create your HTMLAudioElement entirely in javascript

var flush = new Audio('toilet_flush.wav');;

Some of the more commonly used properties of the audio element includes src, currentTime, duration, paused, muted and volume.

var flush = new Audio('toilet_flush.wav');
flush.addEventListener('loadeddata',() => {
    var duration = flush.duration; // the duration variable now holds the duration (in seconds) of the audio clip  


Specification Status Comment
HTML Living Standard
The definition of 'HTMLAudioElement' in that specification.
Living Standard No change from HTML5
The definition of 'HTMLAudioElement' in that specification.
Recommendation Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes3.59 Yes Yes
mozCurrentSampleOffset No No4 No No No
mozSetup No No4 No No No
mozWriteAudio No No4 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes
mozCurrentSampleOffset No No No Yes No No No
mozSetup No No No Yes No No No
mozWriteAudio No No No Yes No No No

See also

  • HTML element implementing this interface: <audio>.

Document Tags and Contributors

Last updated by: joshmarinacci,