1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

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

View file

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

View file

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