Load shaka-player as soon as Player component is loaded.

This commit is contained in:
FireMasterK 2021-07-10 02:25:09 +05:30
parent 574740020a
commit 3d3b587a9c
No known key found for this signature in database
GPG key ID: 49451E4482CC5BCD

View file

@ -39,6 +39,9 @@ export default {
return _this.getPreferenceBoolean("playerAutoPlay", true); return _this.getPreferenceBoolean("playerAutoPlay", true);
}, },
}, },
mounted() {
if (!this.shaka) this.shakaPromise = shaka.then(shaka => shaka.default).then(shaka => (this.shaka = shaka));
},
methods: { methods: {
loadVideo() { loadVideo() {
const component = this; const component = this;
@ -73,31 +76,28 @@ export default {
} }
if (noPrevPlayer) if (noPrevPlayer)
shaka this.shakaPromise.then(() => {
.then(shaka => shaka.default) this.shaka.polyfill.installAll();
.then(shaka => {
this.shaka = shaka;
shaka.polyfill.installAll();
const localPlayer = new shaka.Player(videoEl); const localPlayer = new this.shaka.Player(videoEl);
localPlayer.getNetworkingEngine().registerRequestFilter((_type, request) => { localPlayer.getNetworkingEngine().registerRequestFilter((_type, request) => {
const uri = request.uris[0]; const uri = request.uris[0];
var url = new URL(uri); var url = new URL(uri);
if (url.host.endsWith(".googlevideo.com")) { if (url.host.endsWith(".googlevideo.com")) {
url.searchParams.set("host", url.host); url.searchParams.set("host", url.host);
url.host = new URL(component.video.proxyUrl).host; url.host = new URL(component.video.proxyUrl).host;
request.uris[0] = url.toString(); request.uris[0] = url.toString();
} }
});
localPlayer.configure(
"streaming.bufferingGoal",
Math.max(this.getPreferenceNumber("bufferGoal", 10), 10),
);
this.setPlayerAttrs(localPlayer, videoEl, uri, shaka);
}); });
localPlayer.configure(
"streaming.bufferingGoal",
Math.max(this.getPreferenceNumber("bufferGoal", 10), 10),
);
this.setPlayerAttrs(localPlayer, videoEl, uri, this.shaka);
});
else this.setPlayerAttrs(this.player, videoEl, uri, this.shaka); else this.setPlayerAttrs(this.player, videoEl, uri, this.shaka);
if (noPrevPlayer) { if (noPrevPlayer) {