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  


Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
Basic support Yes Yes 3.5 9 Yes Yes
mozCurrentSampleOffset No No 4 No No No
mozSetup No No 4 No No No
mozWriteAudio No No 4 No No No
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support Yes Yes Yes 4 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>.

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.