Closed hongfeih-es closed 2 years ago
Hi @hongfeih-es,
We call licenseXhrSetup
before open in a try catch block and if it throws, call it again after open. This is to allow licenseXhrSetup
to call open itself, or only call methods that would work after open (although these will result in caught errors being logged): https://github.com/video-dev/hls.js/pull/3522/files
The fix required on your end would be to modify your callback to call open to avoid this error when using v1:
"licenseXhrSetup": (xhr, url) => {
xhr.open('POST', url, true);
xhr.setRequestHeader('x-hls.js-version', 'v1.1.2');
}
What version of Hls.js are you using?
v1.1.2
What browser (including version) are you using?
Chrome 95.0.4638.69 (Official Build) (x86_64)
What OS (including version) are you using?
Mac OS v12.1
Test stream
https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8
Configuration
Additional player setup steps
No response
Checklist
Steps to reproduce
Expected behaviour
No error
What actually happened?
Saw error in console: [error] > DOMException: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED. at t.licenseXhrSetup (https://cdpn.io/cp/internal/boomboom/pen.js?key=pen.js-2a6d4df7-5e76-526a-6546-22b2a66b541e:8:41) at t.n._createLicenseXhr (https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.2/hls.min.js:1:290690) at t.n._requestLicense (https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.2/hls.min.js:1:292145) at t.n._onLicenseRequestReadyStageChange (https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.1.2/hls.min.js:1:291559)
v0.x.x are good, as
setRequestHeader
is called afteropen
.Console output
Chrome media internals output
No response