mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Polyfill HTMLMediaElement.play
Return a `Promise` to match the new standard.
This commit is contained in:
parent
801c29d3b9
commit
270430f6a1
3 changed files with 41 additions and 21 deletions
26
src/legacy/htmlMediaElement.js
Normal file
26
src/legacy/htmlMediaElement.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
/**
|
||||
* Polyfill for HTMLMediaElement
|
||||
* - HTMLMediaElement.play
|
||||
* Return a `Promise`.
|
||||
*/
|
||||
|
||||
(function (HTMLMediaElement) {
|
||||
'use strict';
|
||||
|
||||
const HTMLMediaElement_proto = HTMLMediaElement.prototype;
|
||||
const real_play = HTMLMediaElement_proto.play;
|
||||
|
||||
HTMLMediaElement_proto.play = function () {
|
||||
try {
|
||||
const promise = real_play.apply(this, arguments);
|
||||
|
||||
if (typeof promise?.then === 'function') {
|
||||
return promise;
|
||||
}
|
||||
|
||||
return Promise.resolve();
|
||||
} catch (err) {
|
||||
return Promise.reject(err);
|
||||
}
|
||||
};
|
||||
}(HTMLMediaElement));
|
Loading…
Add table
Add a link
Reference in a new issue