HTML5 audio
HTML5 Audio is a subject of the HTML5 specification, incorporating audio input, playback, and synthesis, as well as speech to text, in the browser.
<audio> element
The <audio> element represents a sound, or an audio stream. It is commonly used to play back a single audio file within a web page, showing a GUI widget with play/pause/volume controls.The <audio> element has these attributes:
- global attributes
- autoplay = "autoplay" or "" or empty
- preload = "none" or "metadata" or "auto" or "" or empty
- * "none": Hints to the User-Agent that the user is not expected to need the audio stream, or that minimizing unnecessary traffic is desirable.
- * "metadata": Hints to the User-Agent that the user is not expected to need the audio stream, but that fetching its metadata is desirable.
- * "auto": Hints to the User-Agent that optimistically downloading the entire audio stream is considered desirable.
- controls = "controls" or "" or empty
- loop = "loop" or "" or empty
- mediagroup = string
- muted = "muted" or "" or empty
- src = non-empty potentially surrounded by spaces
Example:
Supporting browsers
On PC:- Google Chrome
- Internet Explorer 9
- Firefox 3.5
- Opera 10.5
- Safari 3.1
- Android Browser 2.3
- Blackberry Browser
- Google Chrome
- Internet Explorer Mobile 9
- Safari 4
- Firefox
- Opera Mobile 11
Supported audio coding formats
Apple and Microsoft support the ISO/IEC-defined formats AAC and the older MP3. Mozilla and Opera support the free and open, royalty-free Vorbis format in Ogg and WebM containers, and criticize the patent-encumbered nature of MP3 and AAC, which are guaranteed to be “non-free”. Google has so far provided support for all common formats.
Most AAC files with finite length are wrapped in an MPEG-4 container, which is supported natively in Internet Explorer, Safari, and Chrome, and supported by the OS in Firefox and Opera. Most AAC live streams with infinite length are wrapped in an Audio Data Transport Stream container, which is supported by Chrome, Safari, Firefox and Edge.
Many browsers also support uncompressed PCM audio in a WAVE container.
In 2012, the free and open royalty-free Opus format was released and standardized by IETF. It is supported by Mozilla, Google, Opera and Edge.
This table documents the current support for audio coding formats by the
<audio>
element.Format | Container | MIME type | Chrome | Internet Explorer | Edge | Firefox | Opera | Safari |
PCM | WAV | audio/wav | ||||||
MP3 | MP3 | audio/mpeg | ||||||
AAC | MP4 | audio/mp4 | ||||||
AAC | ADTS | audio/aac audio/aacp | ||||||
Vorbis | Ogg | audio/ogg | ||||||
Vorbis | WebM | audio/webm | ||||||
Opus | Ogg | audio/ogg | ||||||
Opus | WebM | audio/webm | ||||||
FLAC | FLAC | audio/flac | ||||||
FLAC | Ogg | audio/ogg |
Web Audio API and MediaStream Processing API
The Web Audio API specification developed by W3C describes a high-level JavaScript API for processing and synthesizing audio in web applications. The primary paradigm is of an audio routing graph, where a number of AudioNode objects are connected together to define the overall audio rendering. The actual processing will primarily take place in the underlying implementation, but direct JavaScript processing and synthesis is also supported.Mozilla's Firefox browser implements a similar Audio Data API extension since version 4, implemented in 2010 and released in 2011, but Mozilla warns it is non-standard and deprecated, and recommends the Web Audio API instead.
Some JavaScript audio processing and synthesis libraries such as support both APIs.
The is also considering the MediaStream Processing API specification developed by Mozilla.
In addition to audio mixing and processing, it covers more general media streaming, including synchronization with HTML elements, capture of audio and video streams, and peer-to-peer routing of such media streams.
Supporting browsers
On PC:- Google Chrome 10 (Disabled e Client’ Support |author=Scott Gilbertson |date=2011-09-19 |work=Webmonkey |publisher=Wired |accessdate=2012-07-04
Web Speech API
The HTML Speech Incubator group has proposed the implementation of audio-speech technology in browsers in the form of uniform, cross-platform APIs. The API contains both:
- Speech Input API
- Text to Speech API
Supporting browsers
- Safari 6.1 and up
- Google Chrome 25 and up
- Firefox Desktop 44.0 and up / 45.0 and up