diff --git a/src/dom/dom.js b/src/dom/dom.js index 6bafb5bae4..0e1b211026 100644 --- a/src/dom/dom.js +++ b/src/dom/dom.js @@ -2082,15 +2082,6 @@ function createMedia(pInst, type, src, callback) { elt.appendChild(sourceEl); } - // If callback is provided, attach to element - if (typeof callback === 'function') { - const callbackHandler = () => { - callback(); - elt.removeEventListener('canplaythrough', callbackHandler); - }; - elt.addEventListener('canplaythrough', callbackHandler); - } - const mediaEl = addElement(elt, pInst, true); mediaEl.loadedmetadata = false; @@ -2109,6 +2100,15 @@ function createMedia(pInst, type, src, callback) { mediaEl.loadedmetadata = true; }); + // If callback is provided, attach to element + if (typeof callback === 'function') { + const callbackHandler = () => { + callback(mediaEl); + elt.removeEventListener('canplaythrough', callbackHandler); + }; + elt.addEventListener('canplaythrough', callbackHandler); + } + return mediaEl; }