MDN wants to learn about developers like you:


The HTMLMediaElement.networkState property indicates the current state of the fetching of media over the network.


var networkState = audioOrVideo.networkState;


An unsigned short. Possible values are:

Constant Value Description
NETWORK_EMPTY 0 There is no data yet. Also, readyState is HAVE_NOTHING.
NETWORK_IDLE 1 HTMLMediaElement is active and has selected a resource, but is not using the network.
NETWORK_LOADING 2 The browser is downloading HTMLMediaElement data.
NETWORK_NO_SOURCE 3 No HTMLMediaElement src found.


This example will listen for the audio element to begin playing and then check if it is still loading data.

<audio id="example" preload="auto">
 <source src="sound.ogg" type="audio/ogg" />

var obj = document.getElementById('example');

obj.addEventListener('playing', function() {

  if (obj.networkState === 2) {
    // Still loading...



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

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) 3.5 (1.9.1) [1] 9 ? ?
Feature Android Edge Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) ? (Yes) (Yes)

[1] The NETWORK_LOADED state was removed to align with the HTML spec in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1). 

See also

Document Tags and Contributors

 Contributors to this page: MaxSchmeling, mhdSid, bunnybooboo, erikadoyle, misson20000, markg
 Last updated by: MaxSchmeling,