better stream support
This commit is contained in:
parent
acde8364fa
commit
691e428240
@ -257,7 +257,15 @@
|
|||||||
|
|
||||||
function bindPlayerEvents() {
|
function bindPlayerEvents() {
|
||||||
el.player.addEventListener("error", () => {
|
el.player.addEventListener("error", () => {
|
||||||
|
const systemPlayerUrl = state.currentStreamInfo ? buildSystemPlayerHref(state.currentStreamInfo?.title, state.currentStreamInfo?.url, state.currentStreamInfo) : "";
|
||||||
|
if (systemPlayerUrl) {
|
||||||
|
setSettingsMessageHtml(
|
||||||
|
`Playback failed in embedded player. <a href="${systemPlayerUrl}" target="_blank" style="color: inherit; text-decoration: underline;">Open stream directly</a>`,
|
||||||
|
"err"
|
||||||
|
);
|
||||||
|
} else {
|
||||||
setSettingsMessage("Playback failed in embedded player. Try Open stream directly.", "err");
|
setSettingsMessage("Playback failed in embedded player. Try Open stream directly.", "err");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
el.player.addEventListener("loadedmetadata", updateStreamRuntimeInfo);
|
el.player.addEventListener("loadedmetadata", updateStreamRuntimeInfo);
|
||||||
el.player.addEventListener("loadedmetadata", refreshEmbeddedSubtitleTracks);
|
el.player.addEventListener("loadedmetadata", refreshEmbeddedSubtitleTracks);
|
||||||
@ -2488,7 +2496,11 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
disposeHls();
|
disposeHls();
|
||||||
setSettingsMessage("HLS playback failed in embedded player. Try Open stream directly.", "err");
|
const systemPlayerUrl = buildSystemPlayerHref(state.currentStreamInfo?.title, state.currentStreamInfo?.url, state.currentStreamInfo);
|
||||||
|
setSettingsMessageHtml(
|
||||||
|
`HLS playback failed in embedded player. <a href="${systemPlayerUrl}" target="_blank" style="color: inherit; text-decoration: underline;">Open stream directly</a>`,
|
||||||
|
"err"
|
||||||
|
);
|
||||||
if (state.currentStreamInfo) {
|
if (state.currentStreamInfo) {
|
||||||
state.currentStreamInfo.playbackEngine = "native (HLS fallback failed)";
|
state.currentStreamInfo.playbackEngine = "native (HLS fallback failed)";
|
||||||
renderStreamInfo();
|
renderStreamInfo();
|
||||||
@ -2504,8 +2516,9 @@
|
|||||||
if (error?.name === "NotAllowedError") {
|
if (error?.name === "NotAllowedError") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setSettingsMessage(
|
const systemPlayerUrl = buildSystemPlayerHref(state.currentStreamInfo?.title, state.currentStreamInfo?.url, state.currentStreamInfo);
|
||||||
`Playback could not start in embedded player: ${error?.message || "unknown error"}`,
|
setSettingsMessageHtml(
|
||||||
|
`Playback failed in embedded player. <a href="${systemPlayerUrl}" target="_blank" style="color: inherit; text-decoration: underline;">Open in system player</a>`,
|
||||||
"err"
|
"err"
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -3158,6 +3171,11 @@
|
|||||||
el.settingsMessage.className = `message ${type}`.trim();
|
el.settingsMessage.className = `message ${type}`.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setSettingsMessageHtml(html, type = "") {
|
||||||
|
el.settingsMessage.innerHTML = html || "";
|
||||||
|
el.settingsMessage.className = `message ${type}`.trim();
|
||||||
|
}
|
||||||
|
|
||||||
function showError(error) {
|
function showError(error) {
|
||||||
setSettingsMessage(error.message || String(error), "err");
|
setSettingsMessage(error.message || String(error), "err");
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user