Audio, Video, and Time-Based Media
HTML5 made audio and video native browser features. You no longer need old plugin-based approaches for common media playback.
The <audio> Tag
Purpose:
- embeds sound content
Important attributes:
srccontrolsautoplaymutedlooppreload
Common preload values:
nonemetadataauto
Example:
<audio controls preload="metadata">
<source src="podcast.mp3" type="audio/mpeg">
<source src="podcast.ogg" type="audio/ogg">
Your browser does not support audio playback.
</audio>
The <video> Tag
Purpose:
- embeds video content
Important attributes:
srccontrolswidthheightposterautoplaymutedloopplaysinline
Example:
<video controls width="640" poster="preview.jpg">
<source src="lesson.mp4" type="video/mp4">
<source src="lesson.webm" type="video/webm">
Your browser does not support video playback.
</video>
Supporting Tags
<source>
Purpose:
- provides alternate files for media or picture elements
Important attributes:
srctypemediasrcset
<track>
Purpose:
- adds subtitles, captions, descriptions, or chapters
Important attributes:
srckindsrclanglabeldefault
Common kind values:
captionssubtitlesdescriptionschaptersmetadata
Good Media Habits
- include
controlsunless you have a custom player - avoid autoplay with sound
- provide captions when possible
- use modern compressed formats