Reset media source

This commit is contained in:
Dmitry Lyzo 2021-09-17 01:20:58 +03:00
parent a7dce35fae
commit 2af0b91dad
3 changed files with 11 additions and 3 deletions

View File

@ -185,6 +185,12 @@ import { Events } from 'jellyfin-apiclient';
return Promise.resolve();
}
export function resetSrc(elem) {
elem.src = '';
elem.innerHTML = '';
elem.removeAttribute('src');
}
function onSuccessfulPlay(elem, onErrorFn) {
elem.addEventListener('error', onErrorFn);
}
@ -344,9 +350,7 @@ import { Events } from 'jellyfin-apiclient';
export function onEndedInternal(instance, elem, onErrorFn) {
elem.removeEventListener('error', onErrorFn);
elem.src = '';
elem.innerHTML = '';
elem.removeAttribute('src');
resetSrc(elem);
destroyHlsPlayer(instance);
destroyFlvPlayer(instance);

View File

@ -221,6 +221,7 @@ class HtmlAudioPlayer {
self.destroy = function () {
unBindEvents(self._mediaElement);
htmlMediaHelper.resetSrc(self._mediaElement);
};
function createMediaElement() {

View File

@ -13,6 +13,7 @@ import {
getCrossOriginValue,
enableHlsJsPlayer,
applySrc,
resetSrc,
playWithPromise,
onEndedInternal,
saveVolume,
@ -710,6 +711,8 @@ function tryRemoveElement(elem) {
videoElement.removeEventListener('waiting', this.onWaiting);
videoElement.removeEventListener('error', this.onError); // bound in htmlMediaHelper
resetSrc(videoElement);
videoElement.parentNode.removeChild(videoElement);
}