@hopeplayer/core 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/HopePlayerElement.d.ts +42 -2
- package/dist/HopePlayerElement.d.ts.map +1 -1
- package/dist/chunks/NativeEme-CXosVcw8.js +80 -0
- package/dist/chunks/NativeEme-CXosVcw8.js.map +1 -0
- package/dist/chunks/{accessibility-DeUIoAda.js → accessibility-DFx4CE0H.js} +9 -8
- package/dist/chunks/{accessibility-DeUIoAda.js.map → accessibility-DFx4CE0H.js.map} +1 -1
- package/dist/chunks/adTriggers-BIAWe8o4.js +419 -0
- package/dist/chunks/adTriggers-BIAWe8o4.js.map +1 -0
- package/dist/chunks/{ads-CdWbE9aD.js → ads-DlpHPpR9.js} +3 -3
- package/dist/chunks/ads-DlpHPpR9.js.map +1 -0
- package/dist/chunks/analytics-DEjTAJO9.js +281 -0
- package/dist/chunks/analytics-DEjTAJO9.js.map +1 -0
- package/dist/chunks/{cast-BQ-suTcF.js → cast-vHyi7oV_.js} +2 -2
- package/dist/chunks/{cast-BQ-suTcF.js.map → cast-vHyi7oV_.js.map} +1 -1
- package/dist/chunks/dash-CWjy-y7B.js +22 -0
- package/dist/chunks/dash-CWjy-y7B.js.map +1 -0
- package/dist/chunks/docPip-wybMVP1H.js +82 -0
- package/dist/chunks/docPip-wybMVP1H.js.map +1 -0
- package/dist/chunks/heatmap-Bb7neaYU.js +92 -0
- package/dist/chunks/heatmap-Bb7neaYU.js.map +1 -0
- package/dist/chunks/{history-DAbqEhNB.js → history-CwqLXiZi.js} +2 -2
- package/dist/chunks/{history-DAbqEhNB.js.map → history-CwqLXiZi.js.map} +1 -1
- package/dist/chunks/interactive-CgltIneu.js +189 -0
- package/dist/chunks/interactive-CgltIneu.js.map +1 -0
- package/dist/chunks/keySystems-CNzjRq6e.js +70 -0
- package/dist/chunks/keySystems-CNzjRq6e.js.map +1 -0
- package/dist/chunks/{loopSection-CvF4l5uf.js → loopSection-Bwk4W8vz.js} +16 -16
- package/dist/chunks/loopSection-Bwk4W8vz.js.map +1 -0
- package/dist/chunks/{markers-B04NMI79.js → markers-L69W3kj6.js} +53 -51
- package/dist/chunks/markers-L69W3kj6.js.map +1 -0
- package/dist/chunks/player-D2_HRzot.js +4351 -0
- package/dist/chunks/player-D2_HRzot.js.map +1 -0
- package/dist/chunks/{playlist-C6Mh9BE8.js → playlist-CHfStNbQ.js} +29 -21
- package/dist/chunks/playlist-CHfStNbQ.js.map +1 -0
- package/dist/chunks/plugin-style-CPJELe-i.js +17 -0
- package/dist/chunks/plugin-style-CPJELe-i.js.map +1 -0
- package/dist/chunks/pluginHost-cN2uGFeG.js +566 -0
- package/dist/chunks/pluginHost-cN2uGFeG.js.map +1 -0
- package/dist/chunks/redirectScreen-TIqLdvBY.js +239 -0
- package/dist/chunks/redirectScreen-TIqLdvBY.js.map +1 -0
- package/dist/chunks/{rewardedUnlock-CGhQyWOk.js → rewardedUnlock-DUqYwXTr.js} +2 -2
- package/dist/chunks/{rewardedUnlock-CGhQyWOk.js.map → rewardedUnlock-DUqYwXTr.js.map} +1 -1
- package/dist/chunks/segments-Ds-c1b5e.js +66 -0
- package/dist/chunks/segments-Ds-c1b5e.js.map +1 -0
- package/dist/chunks/{skipSegments-BbWzPpXz.js → skipSegments-ByNoF1qZ.js} +2 -2
- package/dist/chunks/{skipSegments-BbWzPpXz.js.map → skipSegments-ByNoF1qZ.js.map} +1 -1
- package/dist/chunks/{spriteThumbnails-B7oDZFTo.js → spriteThumbnails-Cr9UmkM9.js} +74 -51
- package/dist/chunks/spriteThumbnails-Cr9UmkM9.js.map +1 -0
- package/dist/chunks/{statsPanel-DSClIwA3.js → statsPanel-D0DtoFgS.js} +2 -2
- package/dist/chunks/statsPanel-D0DtoFgS.js.map +1 -0
- package/dist/chunks/{sticky-D_eLCNFk.js → sticky-BDStzjBM.js} +27 -26
- package/dist/chunks/sticky-BDStzjBM.js.map +1 -0
- package/dist/chunks/{story-BLBij82f.js → story-CodA2dfn.js} +2 -2
- package/dist/chunks/{story-BLBij82f.js.map → story-CodA2dfn.js.map} +1 -1
- package/dist/chunks/transcript-LG7E9UYE.js +186 -0
- package/dist/chunks/transcript-LG7E9UYE.js.map +1 -0
- package/dist/controls/ContextMenu.d.ts +1 -0
- package/dist/controls/ContextMenu.d.ts.map +1 -1
- package/dist/controls/ControlBar.d.ts +6 -0
- package/dist/controls/ControlBar.d.ts.map +1 -1
- package/dist/controls/SeekBar.d.ts +5 -2
- package/dist/controls/SeekBar.d.ts.map +1 -1
- package/dist/controls/SettingsMenu.d.ts +2 -1
- package/dist/controls/SettingsMenu.d.ts.map +1 -1
- package/dist/drm/NativeEme.d.ts +23 -0
- package/dist/drm/NativeEme.d.ts.map +1 -0
- package/dist/drm/keySystems.d.ts +18 -0
- package/dist/drm/keySystems.d.ts.map +1 -0
- package/dist/hls/SourceManager.d.ts +31 -5
- package/dist/hls/SourceManager.d.ts.map +1 -1
- package/dist/hls/dashEngine.d.ts +85 -0
- package/dist/hls/dashEngine.d.ts.map +1 -0
- package/dist/hls/sourceGroups.d.ts.map +1 -1
- package/dist/hope-player.js +1 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/types.d.ts +28 -0
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/keyboard/KeyboardController.d.ts +14 -0
- package/dist/keyboard/KeyboardController.d.ts.map +1 -1
- package/dist/plugin-api/PluginAds.d.ts +61 -0
- package/dist/plugin-api/PluginAds.d.ts.map +1 -0
- package/dist/plugin-api/PluginHost.d.ts +6 -0
- package/dist/plugin-api/PluginHost.d.ts.map +1 -1
- package/dist/plugin-api/types.d.ts +39 -0
- package/dist/plugin-api/types.d.ts.map +1 -1
- package/dist/plugins/accessibility/Accessibility.d.ts.map +1 -1
- package/dist/plugins/ad-triggers/AdTriggers.d.ts +5 -0
- package/dist/plugins/ad-triggers/AdTriggers.d.ts.map +1 -1
- package/dist/plugins/ads/AdsController.d.ts +2 -0
- package/dist/plugins/ads/AdsController.d.ts.map +1 -1
- package/dist/plugins/analytics/QoeTracker.d.ts +71 -0
- package/dist/plugins/analytics/QoeTracker.d.ts.map +1 -0
- package/dist/plugins/analytics/index.d.ts +6 -0
- package/dist/plugins/analytics/index.d.ts.map +1 -0
- package/dist/plugins/doc-pip/DocumentPip.d.ts +44 -0
- package/dist/plugins/doc-pip/DocumentPip.d.ts.map +1 -0
- package/dist/plugins/doc-pip/index.d.ts +5 -0
- package/dist/plugins/doc-pip/index.d.ts.map +1 -0
- package/dist/plugins/heatmap/Heatmap.d.ts +36 -0
- package/dist/plugins/heatmap/Heatmap.d.ts.map +1 -0
- package/dist/plugins/heatmap/index.d.ts +6 -0
- package/dist/plugins/heatmap/index.d.ts.map +1 -0
- package/dist/plugins/interactive/Interactive.d.ts +45 -0
- package/dist/plugins/interactive/Interactive.d.ts.map +1 -0
- package/dist/plugins/interactive/index.d.ts +6 -0
- package/dist/plugins/interactive/index.d.ts.map +1 -0
- package/dist/plugins/markers/MarkProgress.d.ts +3 -1
- package/dist/plugins/markers/MarkProgress.d.ts.map +1 -1
- package/dist/plugins/playlist/PlaylistRunner.d.ts +2 -0
- package/dist/plugins/playlist/PlaylistRunner.d.ts.map +1 -1
- package/dist/plugins/redirect-screen/RedirectScreen.d.ts +3 -1
- package/dist/plugins/redirect-screen/RedirectScreen.d.ts.map +1 -1
- package/dist/plugins/segments/Segments.d.ts +1 -0
- package/dist/plugins/segments/Segments.d.ts.map +1 -1
- package/dist/plugins/sprite-thumbnails/SpriteThumbnails.d.ts +9 -0
- package/dist/plugins/sprite-thumbnails/SpriteThumbnails.d.ts.map +1 -1
- package/dist/plugins/sticky/StickyManager.d.ts +2 -0
- package/dist/plugins/sticky/StickyManager.d.ts.map +1 -1
- package/dist/plugins/transcript/Transcript.d.ts +65 -0
- package/dist/plugins/transcript/Transcript.d.ts.map +1 -0
- package/dist/plugins/transcript/index.d.ts +6 -0
- package/dist/plugins/transcript/index.d.ts.map +1 -0
- package/dist/screens/ErrorScreen.d.ts +1 -1
- package/dist/screens/ErrorScreen.d.ts.map +1 -1
- package/dist/subtitles/attachTracks.d.ts +6 -0
- package/dist/subtitles/attachTracks.d.ts.map +1 -1
- package/dist/types/index.d.ts +320 -16
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/plugin-style.d.ts +5 -0
- package/dist/utils/plugin-style.d.ts.map +1 -0
- package/package.json +2 -1
- package/dist/chunks/adTriggers-DXmtF4t2.js +0 -410
- package/dist/chunks/adTriggers-DXmtF4t2.js.map +0 -1
- package/dist/chunks/ads-CdWbE9aD.js.map +0 -1
- package/dist/chunks/loopSection-CvF4l5uf.js.map +0 -1
- package/dist/chunks/markers-B04NMI79.js.map +0 -1
- package/dist/chunks/player-D7WQxMzr.js +0 -3894
- package/dist/chunks/player-D7WQxMzr.js.map +0 -1
- package/dist/chunks/playlist-C6Mh9BE8.js.map +0 -1
- package/dist/chunks/pluginHost-DjvLmMYZ.js +0 -376
- package/dist/chunks/pluginHost-DjvLmMYZ.js.map +0 -1
- package/dist/chunks/redirectScreen-5HAVRtxe.js +0 -208
- package/dist/chunks/redirectScreen-5HAVRtxe.js.map +0 -1
- package/dist/chunks/segments-gCPrWRig.js +0 -63
- package/dist/chunks/segments-gCPrWRig.js.map +0 -1
- package/dist/chunks/spriteThumbnails-B7oDZFTo.js.map +0 -1
- package/dist/chunks/statsPanel-DSClIwA3.js.map +0 -1
- package/dist/chunks/sticky-D_eLCNFk.js.map +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
var d = Object.defineProperty;
|
|
2
|
+
var u = (p, t, s) => t in p ? d(p, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : p[t] = s;
|
|
3
|
+
var r = (p, t, s) => u(p, typeof t != "symbol" ? t + "" : t, s);
|
|
4
|
+
import { c as m, t as x, f } from "./player-D2_HRzot.js";
|
|
5
|
+
import { a as b } from "./plugin-style-CPJELe-i.js";
|
|
6
|
+
const v = ".hp-transcript{position:absolute;top:12px;bottom:76px;z-index:24;display:flex;flex-direction:column;width:min(340px,45%);overflow:hidden;border:1px solid var(--hp-panel-border);border-radius:12px;background:var(--hp-panel-bg);backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--hp-panel-blur)) saturate(160%);color:var(--hp-panel-text);box-shadow:0 8px 28px #00000059;font:13px/1.45 system-ui,-apple-system,sans-serif;transition:bottom .2s ease}.hp-transcript[hidden],.hp-transcript[data-ad],.hp-transcript [hidden]{display:none}.hp-transcript[data-position=right]{right:12px}.hp-transcript[data-position=left]{left:12px}.video-area[data-chrome-hidden] .hp-transcript{bottom:12px}.video-area[data-compact] .hp-transcript{top:8px;bottom:56px;left:8px;right:8px;width:auto}.video-area[data-compact][data-chrome-hidden] .hp-transcript{bottom:8px}.hp-transcript-head{display:flex;align-items:center;gap:8px;padding:10px 10px 6px 14px}.hp-transcript-title{flex:1;font-weight:600;font-size:14px}.hp-transcript-select,.hp-transcript-search{border:1px solid var(--hp-panel-border);border-radius:8px;background:color-mix(in srgb,var(--hp-panel-text) 8%,transparent);color:inherit;font:inherit}.hp-transcript-select{max-width:45%;padding:3px 6px;font-size:12px}.hp-transcript-select option{color:#000}.hp-transcript-close{display:grid;place-items:center;flex:none;width:26px;height:26px;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;font-size:13px;cursor:pointer}.hp-transcript-close:hover{background:color-mix(in srgb,var(--hp-panel-text) 14%,transparent)}.hp-transcript-search{margin:0 10px 8px;padding:6px 10px;outline:none}.hp-transcript-search:focus-visible,.hp-transcript-select:focus-visible,.hp-transcript-close:focus-visible,.hp-transcript-line button:focus-visible{outline:2px solid var(--hp-panel-text);outline-offset:-2px}.hp-transcript-list{position:relative;flex:1;margin:0;padding:0 6px 8px;overflow-y:auto;overscroll-behavior:contain;list-style:none}.hp-transcript-line button{display:flex;gap:10px;width:100%;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.hp-transcript-line button:hover{background:color-mix(in srgb,var(--hp-panel-text) 10%,transparent)}.hp-transcript-line[data-active] button{background:color-mix(in srgb,var(--hp-panel-text) 16%,transparent);font-weight:500}.hp-transcript-time{flex:none;min-width:3.2em;padding-top:1px;color:var(--hp-panel-text-muted, var(--hp-panel-text));font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.hp-transcript-text mark{border-radius:3px;background:color-mix(in srgb,var(--hp-panel-text) 24%,transparent);color:inherit}.hp-transcript-status{margin:0;padding:4px 14px 14px;opacity:.7;font-size:12px}.hp-transcript-btn[aria-pressed=true]{color:var(--hp-color-accent, #fff)}@media(prefers-reduced-motion:reduce){.hp-transcript{transition:none}}", g = { "&": "&", "<": "<", ">": ">", " ": " ", """: '"', "'": "'" };
|
|
7
|
+
function E(p) {
|
|
8
|
+
return p.replace(/<[^>]*>/g, "").replace(/&(amp|lt|gt|nbsp|quot|#39);/g, (t) => g[t] ?? t).replace(/\s+/g, " ").trim();
|
|
9
|
+
}
|
|
10
|
+
function h(p) {
|
|
11
|
+
return p.toLocaleLowerCase("tr").normalize("NFD").replace(/[̀-ͯ]/g, "");
|
|
12
|
+
}
|
|
13
|
+
class k {
|
|
14
|
+
constructor(t, s) {
|
|
15
|
+
r(this, "panel");
|
|
16
|
+
r(this, "list");
|
|
17
|
+
r(this, "status");
|
|
18
|
+
r(this, "select");
|
|
19
|
+
r(this, "search", null);
|
|
20
|
+
r(this, "titleEl");
|
|
21
|
+
r(this, "closeBtn");
|
|
22
|
+
r(this, "button", null);
|
|
23
|
+
r(this, "lines", []);
|
|
24
|
+
r(this, "activeIndex", -1);
|
|
25
|
+
r(this, "sourceLabel", null);
|
|
26
|
+
r(this, "sourceTrack", null);
|
|
27
|
+
r(this, "cueCount", -1);
|
|
28
|
+
r(this, "query", "");
|
|
29
|
+
r(this, "open", !1);
|
|
30
|
+
r(this, "userScrollUntil", 0);
|
|
31
|
+
r(this, "lastSync", 0);
|
|
32
|
+
r(this, "autoScroll");
|
|
33
|
+
/** Altyazı listesi / seçimi değişti — kaynak iz yeniden seçilir. */
|
|
34
|
+
r(this, "onTracksChanged", () => {
|
|
35
|
+
const t = this.ctx.getTracks(), s = this.select.value;
|
|
36
|
+
this.select.replaceChildren(
|
|
37
|
+
...t.map((c) => {
|
|
38
|
+
const l = document.createElement("option");
|
|
39
|
+
return l.value = l.textContent = c.label, l;
|
|
40
|
+
})
|
|
41
|
+
), this.select.hidden = t.length < 2;
|
|
42
|
+
const e = this.options.track, n = e ? t.find((c) => c.label === e || c.track.language === e) : void 0, i = this.sourceLabel ? t.find((c) => c.label === this.sourceLabel) : void 0, a = this.ctx.activeLabel(), o = i ?? (a ? t.find((c) => c.label === a) : void 0) ?? n ?? t[0];
|
|
43
|
+
o && (this.select.value = o.label), (o == null ? void 0 : o.track) !== this.sourceTrack || s !== this.select.value || this.cueCount < 0 ? this.load() : this.syncCues();
|
|
44
|
+
});
|
|
45
|
+
r(this, "onAd", (t) => {
|
|
46
|
+
this.panel.toggleAttribute("data-ad", t.type === "hp:adstart");
|
|
47
|
+
});
|
|
48
|
+
r(this, "onTimeUpdate", () => {
|
|
49
|
+
var i, a, o, c;
|
|
50
|
+
const t = performance.now();
|
|
51
|
+
this.sourceTrack && this.cueCount >= 0 && t - this.lastSync > 1e3 && (this.lastSync = t, this.syncCues());
|
|
52
|
+
const s = this.ctx.videoEl.currentTime;
|
|
53
|
+
let e = -1;
|
|
54
|
+
for (let l = 0; l < this.lines.length && !(this.lines[l].start > s); l++)
|
|
55
|
+
e = l;
|
|
56
|
+
if (e >= 0 && s > this.lines[e].end + 3 && (e = -1), e === this.activeIndex) return;
|
|
57
|
+
if (this.activeIndex >= 0) {
|
|
58
|
+
const l = (i = this.lines[this.activeIndex]) == null ? void 0 : i.row;
|
|
59
|
+
l == null || l.removeAttribute("data-active"), (a = l == null ? void 0 : l.firstElementChild) == null || a.removeAttribute("aria-current");
|
|
60
|
+
}
|
|
61
|
+
this.activeIndex = e;
|
|
62
|
+
const n = (o = this.lines[e]) == null ? void 0 : o.row;
|
|
63
|
+
n == null || n.setAttribute("data-active", ""), (c = n == null ? void 0 : n.firstElementChild) == null || c.setAttribute("aria-current", "true"), this.scrollToActive(!1);
|
|
64
|
+
});
|
|
65
|
+
this.ctx = t, this.options = s, this.autoScroll = s.autoScroll !== !1, b(t.overlayEl, "transcript", v);
|
|
66
|
+
const e = document.createElement("aside");
|
|
67
|
+
e.className = "hp-transcript", e.setAttribute("part", "transcript"), e.setAttribute("data-position", s.position === "left" ? "left" : "right"), e.hidden = !0;
|
|
68
|
+
const n = document.createElement("div");
|
|
69
|
+
if (n.className = "hp-transcript-head", this.titleEl = document.createElement("span"), this.titleEl.className = "hp-transcript-title", this.select = document.createElement("select"), this.select.className = "hp-transcript-select", this.select.addEventListener("change", () => {
|
|
70
|
+
this.sourceLabel = this.select.value, this.load();
|
|
71
|
+
}), this.closeBtn = document.createElement("button"), this.closeBtn.type = "button", this.closeBtn.className = "hp-transcript-close", this.closeBtn.appendChild(m("close")), this.closeBtn.addEventListener("click", () => this.setOpen(!1)), n.append(this.titleEl, this.select, this.closeBtn), e.appendChild(n), s.search !== !1) {
|
|
72
|
+
const i = document.createElement("input");
|
|
73
|
+
i.type = "search", i.className = "hp-transcript-search", i.addEventListener("input", () => {
|
|
74
|
+
this.query = i.value, this.applyFilter();
|
|
75
|
+
}), this.search = i, e.appendChild(i);
|
|
76
|
+
}
|
|
77
|
+
this.list = document.createElement("ol"), this.list.className = "hp-transcript-list";
|
|
78
|
+
for (const i of ["wheel", "touchmove"])
|
|
79
|
+
this.list.addEventListener(i, () => this.userScrollUntil = performance.now() + 4e3, { passive: !0 });
|
|
80
|
+
this.status = document.createElement("p"), this.status.className = "hp-transcript-status", this.status.setAttribute("aria-live", "polite"), e.append(this.list, this.status);
|
|
81
|
+
for (const i of ["pointerdown", "click", "dblclick"]) e.addEventListener(i, (a) => a.stopPropagation());
|
|
82
|
+
if (e.addEventListener("keydown", (i) => {
|
|
83
|
+
var a;
|
|
84
|
+
i.key === "Escape" && (this.setOpen(!1), (a = this.button) == null || a.focus()), i.stopPropagation();
|
|
85
|
+
}), t.overlayEl.appendChild(e), this.panel = e, s.button !== !1) {
|
|
86
|
+
const { btn: i } = t.addButton(t.i18n.transcript, "transcript", () => this.setOpen(!this.open));
|
|
87
|
+
i.classList.add("hp-transcript-btn"), i.setAttribute("aria-pressed", "false"), this.button = i;
|
|
88
|
+
}
|
|
89
|
+
this.refreshLabels(), t.videoEl.addEventListener("timeupdate", this.onTimeUpdate), t.videoEl.addEventListener("seeked", this.onTimeUpdate), t.videoEl.addEventListener("hp-internal:subtitle-loaded", this.onTracksChanged), t.hostEl.addEventListener("hp:adstart", this.onAd), t.hostEl.addEventListener("hp:adend", this.onAd), this.onTracksChanged(), s.open && this.setOpen(!0, !1);
|
|
90
|
+
}
|
|
91
|
+
get isOpen() {
|
|
92
|
+
return this.open;
|
|
93
|
+
}
|
|
94
|
+
setOpen(t, s = !0) {
|
|
95
|
+
var e;
|
|
96
|
+
t !== this.open && (this.open = t, this.panel.hidden = !t, (e = this.button) == null || e.setAttribute("aria-pressed", String(t)), this.ctx.overlayEl.toggleAttribute("data-transcript-open", t), t && (this.onTracksChanged(), this.scrollToActive(!0)), s && this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:transcript", { detail: { state: t ? "open" : "close" } })));
|
|
97
|
+
}
|
|
98
|
+
refreshLabels() {
|
|
99
|
+
var s;
|
|
100
|
+
const t = this.ctx.i18n;
|
|
101
|
+
this.titleEl.textContent = t.transcript, this.panel.setAttribute("aria-label", t.transcript), this.select.setAttribute("aria-label", t.transcriptTrack), this.closeBtn.setAttribute("aria-label", t.transcriptClose), this.search && (this.search.placeholder = t.transcriptSearch, this.search.setAttribute("aria-label", t.transcriptSearch)), (s = this.button) == null || s.setAttribute("aria-label", t.transcript), this.updateStatus();
|
|
102
|
+
}
|
|
103
|
+
destroy() {
|
|
104
|
+
var s;
|
|
105
|
+
const t = this.ctx.videoEl;
|
|
106
|
+
t.removeEventListener("timeupdate", this.onTimeUpdate), t.removeEventListener("seeked", this.onTimeUpdate), t.removeEventListener("hp-internal:subtitle-loaded", this.onTracksChanged), this.ctx.hostEl.removeEventListener("hp:adstart", this.onAd), this.ctx.hostEl.removeEventListener("hp:adend", this.onAd), this.ctx.overlayEl.removeAttribute("data-transcript-open"), this.panel.remove(), (s = this.button) == null || s.remove();
|
|
107
|
+
}
|
|
108
|
+
/** Seçili izin cue'larını baştan kurar. */
|
|
109
|
+
load() {
|
|
110
|
+
var s;
|
|
111
|
+
const t = this.select.value || null;
|
|
112
|
+
this.sourceTrack = ((s = this.ctx.getTracks().find((e) => e.label === t)) == null ? void 0 : s.track) ?? null, this.cueCount = -1, this.syncCues();
|
|
113
|
+
}
|
|
114
|
+
/** Cue sayısı değiştiyse (yayın izi parça parça dolar) satırları yeniden çizer. */
|
|
115
|
+
syncCues() {
|
|
116
|
+
const t = this.sourceTrack ? x(this.sourceTrack) : null, s = (t == null ? void 0 : t.length) ?? 0;
|
|
117
|
+
if (s === this.cueCount) return;
|
|
118
|
+
this.cueCount = s;
|
|
119
|
+
const e = (t ?? []).slice().sort((i, a) => i.start - a.start), n = [];
|
|
120
|
+
for (const i of e) {
|
|
121
|
+
const a = E(i.text);
|
|
122
|
+
if (!a) continue;
|
|
123
|
+
const o = n[n.length - 1];
|
|
124
|
+
if (o && o.text === a) {
|
|
125
|
+
o.end = Math.max(o.end, i.end);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
n.push(this.buildLine(i.start, i.end, a));
|
|
129
|
+
}
|
|
130
|
+
this.lines = n, this.activeIndex = -1, this.list.replaceChildren(...n.map((i) => i.row)), this.applyFilter(), this.onTimeUpdate();
|
|
131
|
+
}
|
|
132
|
+
buildLine(t, s, e) {
|
|
133
|
+
const n = document.createElement("li");
|
|
134
|
+
n.className = "hp-transcript-line";
|
|
135
|
+
const i = document.createElement("button");
|
|
136
|
+
i.type = "button";
|
|
137
|
+
const a = document.createElement("span");
|
|
138
|
+
a.className = "hp-transcript-time", a.textContent = f(t);
|
|
139
|
+
const o = document.createElement("span");
|
|
140
|
+
return o.className = "hp-transcript-text", o.textContent = e, i.append(a, o), i.addEventListener("click", () => {
|
|
141
|
+
const c = this.ctx.videoEl;
|
|
142
|
+
c.currentTime = t, this.userScrollUntil = 0, this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:transcript", { detail: { state: "seek", time: t } }));
|
|
143
|
+
}), n.appendChild(i), { start: t, end: s, text: e, row: n, textEl: o };
|
|
144
|
+
}
|
|
145
|
+
scrollToActive(t) {
|
|
146
|
+
var i;
|
|
147
|
+
if (!this.open || !t && (!this.autoScroll || performance.now() < this.userScrollUntil)) return;
|
|
148
|
+
const s = (i = this.lines[this.activeIndex]) == null ? void 0 : i.row;
|
|
149
|
+
if (!s || s.hidden) return;
|
|
150
|
+
const e = this.list, n = s.offsetTop - e.offsetTop;
|
|
151
|
+
(t || n < e.scrollTop || n + s.offsetHeight > e.scrollTop + e.clientHeight) && (e.scrollTop = Math.max(0, n - e.clientHeight / 3));
|
|
152
|
+
}
|
|
153
|
+
/** Arama: eşleşmeyen satırlar gizlenir, eşleşen kısım <mark> ile vurgulanır. */
|
|
154
|
+
applyFilter() {
|
|
155
|
+
const t = h(this.query.trim());
|
|
156
|
+
let s = 0;
|
|
157
|
+
for (const e of this.lines) {
|
|
158
|
+
if (!t) {
|
|
159
|
+
e.row.hidden = !1, e.textEl.textContent = e.text, s++;
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
const n = h(e.text).indexOf(t);
|
|
163
|
+
if (e.row.hidden = n < 0, n < 0) continue;
|
|
164
|
+
if (s++, h(e.text).length !== e.text.length) {
|
|
165
|
+
e.textEl.textContent = e.text;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const i = document.createElement("mark");
|
|
169
|
+
i.textContent = e.text.slice(n, n + t.length), e.textEl.replaceChildren(e.text.slice(0, n), i, e.text.slice(n + t.length));
|
|
170
|
+
}
|
|
171
|
+
this.updateStatus(s);
|
|
172
|
+
}
|
|
173
|
+
updateStatus(t = this.lines.filter((s) => !s.row.hidden).length) {
|
|
174
|
+
const s = this.ctx.i18n;
|
|
175
|
+
let e = "";
|
|
176
|
+
this.ctx.getTracks().length ? this.lines.length ? t || (e = s.transcriptNoResults) : e = s.transcriptWaiting : e = s.transcriptEmpty, this.status.textContent = e, this.status.hidden = !e;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
function w(p, t) {
|
|
180
|
+
return new k(p, t);
|
|
181
|
+
}
|
|
182
|
+
export {
|
|
183
|
+
k as Transcript,
|
|
184
|
+
w as installTranscript
|
|
185
|
+
};
|
|
186
|
+
//# sourceMappingURL=transcript-LG7E9UYE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-LG7E9UYE.js","sources":["../../src/plugins/transcript/Transcript.ts","../../src/plugins/transcript/index.ts"],"sourcesContent":["import type { TranscriptOptions } from '../../types';\nimport type { HopeLocaleStrings } from '../../i18n/types';\nimport { createIcon } from '../../icons/Icon';\nimport { formatTime } from '../../utils/format-time';\nimport { trackCues } from '../../subtitles/attachTracks';\nimport { adoptStyle } from '../../utils/plugin-style';\nimport css from './transcript.css?inline';\n\nexport interface TranscriptPlayerContext {\n hostEl: HTMLElement;\n videoEl: HTMLVideoElement;\n overlayEl: HTMLElement;\n i18n: HopeLocaleStrings;\n /** Altyazı menüsündeki izler (dosya + yayın). */\n getTracks(): { label: string; track: TextTrack }[];\n /** Seçili altyazının adı (kapalıysa null). */\n activeLabel(): string | null;\n addButton(label: string, iconName: string, onClick: () => void): { btn: HTMLButtonElement; icon: HTMLElement };\n}\n\ninterface Line {\n start: number;\n end: number;\n text: string;\n row: HTMLLIElement;\n textEl: HTMLSpanElement;\n}\n\nconst ENTITIES: Record<string, string> = { '&': '&', '<': '<', '>': '>', ' ': ' ', '"': '\"', ''': \"'\" };\n\n/** VTT etiketlerini (<v Ad>, <b>, <c.renk>, zaman damgası) atar, satırları birleştirir. */\nfunction cleanCueText(raw: string): string {\n return raw\n .replace(/<[^>]*>/g, '')\n .replace(/&(amp|lt|gt|nbsp|quot|#39);/g, (m) => ENTITIES[m] ?? m)\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\n/** Arama için harf/aksan duyarsız biçim (İ/ı dahil). */\nfunction fold(s: string): string {\n return s.toLocaleLowerCase('tr').normalize('NFD').replace(/[̀-ͯ]/g, '');\n}\n\n/**\n * Transkript paneli: seçili (ya da `track`) altyazı izinin tüm satırları; tıklayınca o ana gider, oynayan satır\n * vurgulanır ve görünür tutulur, aranabilir. Dosyadan gelen altyazılar iz kapalıyken de okunur; yayın içi izler\n * (HLS / DASH) yalnızca açıkken dolar.\n */\nexport class Transcript {\n private readonly panel: HTMLElement;\n private readonly list: HTMLOListElement;\n private readonly status: HTMLParagraphElement;\n private readonly select: HTMLSelectElement;\n private readonly search: HTMLInputElement | null = null;\n private readonly titleEl: HTMLSpanElement;\n private readonly closeBtn: HTMLButtonElement;\n private button: HTMLButtonElement | null = null;\n private lines: Line[] = [];\n private activeIndex = -1;\n private sourceLabel: string | null = null;\n private sourceTrack: TextTrack | null = null;\n private cueCount = -1;\n private query = '';\n private open = false;\n private userScrollUntil = 0;\n private lastSync = 0;\n private readonly autoScroll: boolean;\n\n constructor(\n private readonly ctx: TranscriptPlayerContext,\n private readonly options: TranscriptOptions\n ) {\n this.autoScroll = options.autoScroll !== false;\n adoptStyle(ctx.overlayEl, 'transcript', css);\n const panel = document.createElement('aside');\n panel.className = 'hp-transcript';\n panel.setAttribute('part', 'transcript');\n panel.setAttribute('data-position', options.position === 'left' ? 'left' : 'right');\n panel.hidden = true;\n\n const head = document.createElement('div');\n head.className = 'hp-transcript-head';\n this.titleEl = document.createElement('span');\n this.titleEl.className = 'hp-transcript-title';\n this.select = document.createElement('select');\n this.select.className = 'hp-transcript-select';\n this.select.addEventListener('change', () => {\n this.sourceLabel = this.select.value;\n this.load();\n });\n this.closeBtn = document.createElement('button');\n this.closeBtn.type = 'button';\n this.closeBtn.className = 'hp-transcript-close';\n this.closeBtn.appendChild(createIcon('close'));\n this.closeBtn.addEventListener('click', () => this.setOpen(false));\n head.append(this.titleEl, this.select, this.closeBtn);\n panel.appendChild(head);\n\n if (options.search !== false) {\n const search = document.createElement('input');\n search.type = 'search';\n search.className = 'hp-transcript-search';\n search.addEventListener('input', () => {\n this.query = search.value;\n this.applyFilter();\n });\n this.search = search;\n panel.appendChild(search);\n }\n\n this.list = document.createElement('ol');\n this.list.className = 'hp-transcript-list';\n // Kullanıcı kaydırırken otomatik kaydırma birkaç saniye durur.\n for (const ev of ['wheel', 'touchmove'] as const) {\n this.list.addEventListener(ev, () => (this.userScrollUntil = performance.now() + 4000), { passive: true });\n }\n this.status = document.createElement('p');\n this.status.className = 'hp-transcript-status';\n this.status.setAttribute('aria-live', 'polite');\n panel.append(this.list, this.status);\n\n // Panel içindeki tıklama / yazma oynatıcıya (oynat-duraklat, kısayollar) gitmesin.\n for (const ev of ['pointerdown', 'click', 'dblclick'] as const) panel.addEventListener(ev, (e) => e.stopPropagation());\n panel.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n this.setOpen(false);\n this.button?.focus();\n }\n e.stopPropagation();\n });\n ctx.overlayEl.appendChild(panel);\n this.panel = panel;\n\n if (options.button !== false) {\n const { btn } = ctx.addButton(ctx.i18n.transcript, 'transcript', () => this.setOpen(!this.open));\n btn.classList.add('hp-transcript-btn');\n btn.setAttribute('aria-pressed', 'false');\n this.button = btn;\n }\n\n this.refreshLabels();\n ctx.videoEl.addEventListener('timeupdate', this.onTimeUpdate);\n ctx.videoEl.addEventListener('seeked', this.onTimeUpdate);\n ctx.videoEl.addEventListener('hp-internal:subtitle-loaded', this.onTracksChanged);\n ctx.hostEl.addEventListener('hp:adstart', this.onAd);\n ctx.hostEl.addEventListener('hp:adend', this.onAd);\n this.onTracksChanged();\n if (options.open) this.setOpen(true, false);\n }\n\n get isOpen(): boolean {\n return this.open;\n }\n\n setOpen(open: boolean, emit = true): void {\n if (open === this.open) return;\n this.open = open;\n this.panel.hidden = !open;\n this.button?.setAttribute('aria-pressed', String(open));\n this.ctx.overlayEl.toggleAttribute('data-transcript-open', open);\n if (open) {\n this.onTracksChanged();\n this.scrollToActive(true);\n }\n if (emit) this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:transcript', { detail: { state: open ? 'open' : 'close' } }));\n }\n\n /** Altyazı listesi / seçimi değişti — kaynak iz yeniden seçilir. */\n readonly onTracksChanged = (): void => {\n const tracks = this.ctx.getTracks();\n const prev = this.select.value;\n this.select.replaceChildren(\n ...tracks.map((t) => {\n const o = document.createElement('option');\n o.value = o.textContent = t.label;\n return o;\n })\n );\n this.select.hidden = tracks.length < 2;\n const want = this.options.track;\n const byOption = want ? tracks.find((t) => t.label === want || t.track.language === want) : undefined;\n const keep = this.sourceLabel ? tracks.find((t) => t.label === this.sourceLabel) : undefined;\n const active = this.ctx.activeLabel();\n const pick = keep ?? (active ? tracks.find((t) => t.label === active) : undefined) ?? byOption ?? tracks[0];\n if (pick) this.select.value = pick.label;\n if (pick?.track !== this.sourceTrack || prev !== this.select.value || this.cueCount < 0) this.load();\n else this.syncCues();\n };\n\n refreshLabels(): void {\n const i18n = this.ctx.i18n;\n this.titleEl.textContent = i18n.transcript;\n this.panel.setAttribute('aria-label', i18n.transcript);\n this.select.setAttribute('aria-label', i18n.transcriptTrack);\n this.closeBtn.setAttribute('aria-label', i18n.transcriptClose);\n if (this.search) {\n this.search.placeholder = i18n.transcriptSearch;\n this.search.setAttribute('aria-label', i18n.transcriptSearch);\n }\n this.button?.setAttribute('aria-label', i18n.transcript);\n this.updateStatus();\n }\n\n destroy(): void {\n const v = this.ctx.videoEl;\n v.removeEventListener('timeupdate', this.onTimeUpdate);\n v.removeEventListener('seeked', this.onTimeUpdate);\n v.removeEventListener('hp-internal:subtitle-loaded', this.onTracksChanged);\n this.ctx.hostEl.removeEventListener('hp:adstart', this.onAd);\n this.ctx.hostEl.removeEventListener('hp:adend', this.onAd);\n this.ctx.overlayEl.removeAttribute('data-transcript-open');\n this.panel.remove();\n this.button?.remove();\n }\n\n private readonly onAd = (e: Event): void => {\n this.panel.toggleAttribute('data-ad', e.type === 'hp:adstart');\n };\n\n /** Seçili izin cue'larını baştan kurar. */\n private load(): void {\n const label = this.select.value || null;\n this.sourceTrack = this.ctx.getTracks().find((t) => t.label === label)?.track ?? null;\n this.cueCount = -1;\n this.syncCues();\n }\n\n /** Cue sayısı değiştiyse (yayın izi parça parça dolar) satırları yeniden çizer. */\n private syncCues(): void {\n const cues = this.sourceTrack ? trackCues(this.sourceTrack) : null;\n const count = cues?.length ?? 0;\n if (count === this.cueCount) return;\n this.cueCount = count;\n const sorted = (cues ?? []).slice().sort((a, b) => a.start - b.start);\n const lines: Line[] = [];\n for (const c of sorted) {\n const text = cleanCueText(c.text);\n if (!text) continue;\n // Kayan (roll-up) altyazılarda aynı satır art arda tekrar eder — birleştir.\n const last = lines[lines.length - 1];\n if (last && last.text === text) {\n last.end = Math.max(last.end, c.end);\n continue;\n }\n lines.push(this.buildLine(c.start, c.end, text));\n }\n this.lines = lines;\n this.activeIndex = -1;\n this.list.replaceChildren(...lines.map((l) => l.row));\n this.applyFilter();\n this.onTimeUpdate();\n }\n\n private buildLine(start: number, end: number, text: string): Line {\n const row = document.createElement('li');\n row.className = 'hp-transcript-line';\n const btn = document.createElement('button');\n btn.type = 'button';\n const time = document.createElement('span');\n time.className = 'hp-transcript-time';\n time.textContent = formatTime(start);\n const textEl = document.createElement('span');\n textEl.className = 'hp-transcript-text';\n textEl.textContent = text;\n btn.append(time, textEl);\n btn.addEventListener('click', () => {\n const v = this.ctx.videoEl;\n v.currentTime = start;\n this.userScrollUntil = 0;\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:transcript', { detail: { state: 'seek', time: start } }));\n });\n row.appendChild(btn);\n return { start, end, text, row, textEl };\n }\n\n private readonly onTimeUpdate = (): void => {\n // Yayın izleri oynarken dolar — saniyede bir bakılır.\n const now = performance.now();\n if (this.sourceTrack && this.cueCount >= 0 && now - this.lastSync > 1000) {\n this.lastSync = now;\n this.syncCues();\n }\n const t = this.ctx.videoEl.currentTime;\n let index = -1;\n for (let i = 0; i < this.lines.length; i++) {\n if (this.lines[i]!.start > t) break;\n index = i;\n }\n // Satırlar arası boşlukta son satır vurgulu kalır; satırın bitişinden 3 sn sonra söner.\n if (index >= 0 && t > this.lines[index]!.end + 3) index = -1;\n if (index === this.activeIndex) return;\n if (this.activeIndex >= 0) {\n const prev = this.lines[this.activeIndex]?.row;\n prev?.removeAttribute('data-active');\n prev?.firstElementChild?.removeAttribute('aria-current');\n }\n this.activeIndex = index;\n const row = this.lines[index]?.row;\n row?.setAttribute('data-active', '');\n row?.firstElementChild?.setAttribute('aria-current', 'true');\n this.scrollToActive(false);\n };\n\n private scrollToActive(force: boolean): void {\n if (!this.open || (!force && (!this.autoScroll || performance.now() < this.userScrollUntil))) return;\n const row = this.lines[this.activeIndex]?.row;\n if (!row || row.hidden) return;\n // scrollIntoView sayfayı da kaydırır — yalnızca listeyi kaydır.\n const list = this.list;\n const top = row.offsetTop - list.offsetTop;\n if (force || top < list.scrollTop || top + row.offsetHeight > list.scrollTop + list.clientHeight) {\n list.scrollTop = Math.max(0, top - list.clientHeight / 3);\n }\n }\n\n /** Arama: eşleşmeyen satırlar gizlenir, eşleşen kısım <mark> ile vurgulanır. */\n private applyFilter(): void {\n const q = fold(this.query.trim());\n let shown = 0;\n for (const line of this.lines) {\n if (!q) {\n line.row.hidden = false;\n line.textEl.textContent = line.text;\n shown++;\n continue;\n }\n const at = fold(line.text).indexOf(q);\n line.row.hidden = at < 0;\n if (at < 0) continue;\n shown++;\n // fold() uzunluğu değiştirmeyen harflerde konum aynıdır; değiştiyse vurgusuz göster.\n if (fold(line.text).length !== line.text.length) {\n line.textEl.textContent = line.text;\n continue;\n }\n const mark = document.createElement('mark');\n mark.textContent = line.text.slice(at, at + q.length);\n line.textEl.replaceChildren(line.text.slice(0, at), mark, line.text.slice(at + q.length));\n }\n this.updateStatus(shown);\n }\n\n private updateStatus(shown = this.lines.filter((l) => !l.row.hidden).length): void {\n const i18n = this.ctx.i18n;\n let msg = '';\n if (!this.ctx.getTracks().length) msg = i18n.transcriptEmpty;\n else if (!this.lines.length) msg = i18n.transcriptWaiting;\n else if (!shown) msg = i18n.transcriptNoResults;\n this.status.textContent = msg;\n this.status.hidden = !msg;\n }\n}\n","import { Transcript, type TranscriptPlayerContext } from './Transcript';\nimport type { TranscriptOptions } from '../../types';\n\nexport function installTranscript(ctx: TranscriptPlayerContext, options: TranscriptOptions): Transcript {\n return new Transcript(ctx, options);\n}\n\nexport { Transcript };\nexport type { TranscriptPlayerContext };\n"],"names":["ENTITIES","cleanCueText","raw","m","fold","s","Transcript","ctx","options","__publicField","tracks","prev","t","o","want","byOption","keep","active","pick","e","now","index","i","_a","_b","row","_c","_d","adoptStyle","css","panel","head","createIcon","search","ev","btn","open","emit","i18n","v","label","cues","trackCues","count","sorted","a","b","lines","c","text","last","l","start","end","time","formatTime","textEl","force","list","top","q","shown","line","at","mark","msg","installTranscript"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare class ContextMenu {
|
|
|
14
14
|
get isOpen(): boolean;
|
|
15
15
|
/** `clientX/Y` ekran koordinatı — menü player'ın içinde kalacak şekilde kaydırılır. */
|
|
16
16
|
show(clientX: number, clientY: number, items: ContextMenuItem[]): void;
|
|
17
|
+
private doc;
|
|
17
18
|
readonly close: () => void;
|
|
18
19
|
private readonly onOutside;
|
|
19
20
|
private readonly onKeyDown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/controls/ContextMenu.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,sGAAsG;AACtG,qBAAa,WAAW;IAIR,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAEQ,SAAS,EAAE,WAAW;IAUnD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,uFAAuF;IACvF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/controls/ContextMenu.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,sGAAsG;AACtG,qBAAa,WAAW;IAIR,OAAO,CAAC,QAAQ,CAAC,SAAS;IAHtC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAEQ,SAAS,EAAE,WAAW;IAUnD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,uFAAuF;IACvF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAgDtE,OAAO,CAAC,GAAG,CAAsB;IAEjC,QAAQ,CAAC,KAAK,QAAO,IAAI,CAUvB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -20,6 +20,8 @@ export interface ControlBarCallbacks {
|
|
|
20
20
|
interceptTogglePlay?(): boolean;
|
|
21
21
|
/** Yükleme halkası (medya takılması ya da preroll beklemesi) açıldı / kapandı — kontroller bu sırada gizlenmesin. */
|
|
22
22
|
onLoadingChange?(loading: boolean): void;
|
|
23
|
+
/** PiP butonu: true dönerse player işledi (Document PiP), yoksa normal PiP. */
|
|
24
|
+
onTogglePip?(): boolean;
|
|
23
25
|
}
|
|
24
26
|
/** Alt kontrol çubuğunu kurar; alt bileşenleri (SeekBar/VolumePanel/SettingsMenu) birleştirir. */
|
|
25
27
|
export declare class ControlBar {
|
|
@@ -136,6 +138,10 @@ export declare class ControlBar {
|
|
|
136
138
|
/** Plugin'lerin (live-wall-clock vb.) kontrol çubuğuna buton olmayan bir element (ör. saat göstergesi) eklemesi için. */
|
|
137
139
|
addElement(el: HTMLElement): void;
|
|
138
140
|
private togglePlay;
|
|
141
|
+
/** Document PiP kullanılabiliyor (normal PiP olmasa da buton görünsün) / açık (tam ekran butonu gizli). */
|
|
142
|
+
setDocPip(available: boolean, active: boolean): void;
|
|
143
|
+
private docPipAvailable;
|
|
144
|
+
private docPipActive;
|
|
139
145
|
private togglePip;
|
|
140
146
|
private toggleFullscreen;
|
|
141
147
|
/** Preroll beklemesi: video duraklatılmış ama oynatma istendi — buton "duraklat" görünsün. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,KAAK,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAItG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA0CvD,MAAM,WAAW,mBAAmB;IAChC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,uGAAuG;IACvG,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,iHAAiH;IACjH,gBAAgB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,IAAI,OAAO,CAAC;IAChC,qHAAqH;IACrH,eAAe,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../src/controls/ControlBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,8 +82,11 @@ export declare class SeekBar {
|
|
|
82
82
|
private readonly startLoop;
|
|
83
83
|
private readonly stopLoop;
|
|
84
84
|
private readonly render;
|
|
85
|
-
/** 0–1 arası oranda,
|
|
86
|
-
addMarker(ratio: number, extraClass?: string): HTMLDivElement;
|
|
85
|
+
/** 0–1 arası oranda, çizginin ortasına bir işaret noktası ekler (markers, etkileşimli öğeler, A-B döngü). */
|
|
86
|
+
addMarker(ratio: number, extraClass?: string, label?: string): HTMLDivElement;
|
|
87
|
+
/** İmlecin yakınındaki (±8 px) etiketli işaretin metni — önizleme balonları "Etiket · 0:42" gösterir. */
|
|
88
|
+
markerLabelAt(clientX: number): string | null;
|
|
89
|
+
private markerAt;
|
|
87
90
|
clearMarkers(): void;
|
|
88
91
|
refreshLabels(): void;
|
|
89
92
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeekBar.d.ts","sourceRoot":"","sources":["../../src/controls/SeekBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIvD;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAChC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,qBAAa,OAAO;IAChB,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAsB;IACtC,oIAAoI;IACpI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,KAAK,CAAuB;gBAExB,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"SeekBar.d.ts","sourceRoot":"","sources":["../../src/controls/SeekBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,7 +131,8 @@ export declare class SettingsMenu {
|
|
|
131
131
|
/** Düzen değişince (ör. kompakt ↔ normal) açık menüyü kapat — eski konumunda asılı kalmasın. */
|
|
132
132
|
closeMenu(): void;
|
|
133
133
|
private close;
|
|
134
|
-
|
|
134
|
+
/** PiP penceresi gibi ek bir belgede de dışarı tıklayınca kapansın. */
|
|
135
|
+
readonly onDocumentClick: (e: MouseEvent) => void;
|
|
135
136
|
private row;
|
|
136
137
|
private backRow;
|
|
137
138
|
private render;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../src/controls/SettingsMenu.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SettingsMenu.d.ts","sourceRoot":"","sources":["../../src/controls/SettingsMenu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HopeDrmOptions } from '../types';
|
|
2
|
+
export interface NativeEmeCallbacks {
|
|
3
|
+
onError(message: string, keySystem?: string): void;
|
|
4
|
+
onLicense?(keySystem: string): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class NativeEme {
|
|
7
|
+
private readonly video;
|
|
8
|
+
private readonly drm;
|
|
9
|
+
private readonly cb;
|
|
10
|
+
private setup;
|
|
11
|
+
private readonly sessions;
|
|
12
|
+
/** Aynı initData için ikinci oturum açılmaz. */
|
|
13
|
+
private readonly seen;
|
|
14
|
+
private disposed;
|
|
15
|
+
constructor(video: HTMLVideoElement, drm: HopeDrmOptions, cb: NativeEmeCallbacks);
|
|
16
|
+
destroy(): void;
|
|
17
|
+
private readonly onEncrypted;
|
|
18
|
+
private handle;
|
|
19
|
+
private createKeys;
|
|
20
|
+
private license;
|
|
21
|
+
private fail;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=NativeEme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeEme.d.ts","sourceRoot":"","sources":["../../src/drm/NativeEme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/D,MAAM,WAAW,kBAAkB;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAKD,qBAAa,SAAS;IAQd,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE;IATvB,OAAO,CAAC,KAAK,CAAuE;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAS;gBAGJ,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,kBAAkB;IAK3C,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,QAAQ,CAAC,WAAW,CAO1B;YAEY,MAAM;YAcN,UAAU;YA8BV,OAAO;IAarB,OAAO,CAAC,IAAI;CAIf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { HlsConfig } from 'hls.js';
|
|
2
|
+
import type { ProtectionDataSet } from 'dashjs';
|
|
3
|
+
import type { HopeDrmLicense, HopeDrmOptions } from '../types';
|
|
4
|
+
export declare const KEY_SYSTEMS: {
|
|
5
|
+
readonly widevine: "com.widevine.alpha";
|
|
6
|
+
readonly playready: "com.microsoft.playready";
|
|
7
|
+
readonly fairplay: "com.apple.fps";
|
|
8
|
+
readonly clearkey: "org.w3.clearkey";
|
|
9
|
+
};
|
|
10
|
+
export type DrmName = keyof typeof KEY_SYSTEMS;
|
|
11
|
+
/** Verilen sistemler, öncelik sırasıyla. */
|
|
12
|
+
export declare function drmEntries(drm: HopeDrmOptions | undefined): Array<[DrmName, HopeDrmLicense]>;
|
|
13
|
+
export declare function hasDrm(drm: HopeDrmOptions | undefined): boolean;
|
|
14
|
+
/** hls.js EME ayarları. */
|
|
15
|
+
export declare function hlsDrmConfig(drm: HopeDrmOptions, user: Partial<HlsConfig>): Partial<HlsConfig>;
|
|
16
|
+
/** dash.js koruma verisi (FairPlay DASH'te kullanılmaz). */
|
|
17
|
+
export declare function dashProtectionData(drm: HopeDrmOptions): ProtectionDataSet;
|
|
18
|
+
//# sourceMappingURL=keySystems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keySystems.d.ts","sourceRoot":"","sources":["../../src/drm/keySystems.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/D,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,WAAW,CAAC;AAE/C,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAI5F;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAE/D;AAID,2BAA2B;AAC3B,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAoC9F;AAgBD,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,CAYzE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HopeHlsOptions } from '../types';
|
|
1
|
+
import type { HopeCmcdOptions, HopeDashOptions, HopeDrmOptions, HopeHlsOptions, QualityLimitOptions } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* MP4: HTML5 video üzerinden doğrudan oynatılır.
|
|
4
4
|
* M3U8: Safari/iOS'ta native HLS; diğer tarayıcılarda gerektiğinde hls.js.
|
|
@@ -10,10 +10,12 @@ export interface HlsQualityLevel {
|
|
|
10
10
|
}
|
|
11
11
|
type HlsModule = typeof import('hls.js');
|
|
12
12
|
type HlsInstance = InstanceType<HlsModule['default']>;
|
|
13
|
-
type MediaSourceType = 'hls' | 'mp4' | 'unknown';
|
|
13
|
+
type MediaSourceType = 'hls' | 'dash' | 'mp4' | 'unknown';
|
|
14
14
|
/** Hangi yoldan oynatılıyor — `reason` native'e neden düşüldüğünü açıklar (ör. CORS). */
|
|
15
15
|
export interface PlaybackEngineInfo {
|
|
16
|
-
engine: 'native' | 'native-hls' | 'hls.js';
|
|
16
|
+
engine: 'native' | 'native-hls' | 'hls.js' | 'dash.js';
|
|
17
|
+
/** Şifreli içerikte kullanılan anahtar sistemi (ör. `com.widevine.alpha`). */
|
|
18
|
+
drm?: string;
|
|
17
19
|
/** hls.js ile oynarken hangi paket (`options.hls.build`). */
|
|
18
20
|
build?: 'full' | 'light';
|
|
19
21
|
/** `option` = `options.hls.engine: 'native'` ile istendi. */
|
|
@@ -46,7 +48,7 @@ export interface SourceManagerCallbacks {
|
|
|
46
48
|
onTextTracksFound(tracks: StreamTextTrack[]): void;
|
|
47
49
|
onCues(trackId: string, cues: VTTCue[]): void;
|
|
48
50
|
/** hls.js kurtarılamayan bir hata verdi (video.error oluşmaz) — `network` = yayın/segment indirilemiyor, `media` = çözümlenemiyor. */
|
|
49
|
-
onFatalError(kind: 'network' | 'media'): void;
|
|
51
|
+
onFatalError(kind: 'network' | 'media' | 'drm' | 'unsupported'): void;
|
|
50
52
|
/** hls.js'in her hatası (kurtarılanlar dahil) — hata ayıklama kaydı için. */
|
|
51
53
|
onStreamError?(info: {
|
|
52
54
|
type: string;
|
|
@@ -55,6 +57,7 @@ export interface SourceManagerCallbacks {
|
|
|
55
57
|
url?: string;
|
|
56
58
|
httpStatus?: number;
|
|
57
59
|
reason?: string;
|
|
60
|
+
engine?: string;
|
|
58
61
|
}): void;
|
|
59
62
|
}
|
|
60
63
|
export declare class SourceManager {
|
|
@@ -70,16 +73,39 @@ export declare class SourceManager {
|
|
|
70
73
|
private streamTextTracks;
|
|
71
74
|
/** Safari native HLS ses izi dinleyicilerini kaldırır. */
|
|
72
75
|
private nativeAudioCleanup;
|
|
76
|
+
private dash;
|
|
77
|
+
private dashOptions;
|
|
78
|
+
private drm;
|
|
79
|
+
private nativeEme;
|
|
80
|
+
private qualityLimit;
|
|
81
|
+
private cmcd;
|
|
82
|
+
/** Her `load()`'da yenilenir. */
|
|
83
|
+
private sid;
|
|
73
84
|
constructor(video: HTMLVideoElement, callbacks: SourceManagerCallbacks);
|
|
74
85
|
/** `options.hls` — sonraki `load()`'da uygulanır. */
|
|
75
|
-
configure(options: HopeHlsOptions | undefined
|
|
86
|
+
configure(options: HopeHlsOptions | undefined, media?: {
|
|
87
|
+
dash?: HopeDashOptions;
|
|
88
|
+
drm?: HopeDrmOptions;
|
|
89
|
+
qualityLimit?: QualityLimitOptions;
|
|
90
|
+
cmcd?: HopeCmcdOptions | null;
|
|
91
|
+
}): void;
|
|
76
92
|
/** Bu kaynak zaten yüklü ve hatasız mı — aynı kaynak için yeniden yükleme (başa sarma) gerekmez. */
|
|
77
93
|
isLoaded(src: string, type?: string): boolean;
|
|
94
|
+
/** O anki oynatma oturumu (CMCD `sid`). */
|
|
95
|
+
get sessionId(): string;
|
|
78
96
|
load(src: string, type?: string): Promise<void>;
|
|
79
97
|
/** Şu anki oynatma yolu — docs demosu/entegratör teşhisi için (ör. CORS yüzünden native'e düşüldü mü). */
|
|
80
98
|
get engine(): PlaybackEngineInfo;
|
|
81
99
|
/** hls.js ile oynatılıyorsa instance (gelişmiş kullanım: olaylar, istatistik); değilse null. */
|
|
82
100
|
get hlsInstance(): HlsInstance | null;
|
|
101
|
+
/** Native oynatmada şifreli içerik için EME işleyicisi (kaynak atanmadan önce). */
|
|
102
|
+
private prepareNativeDrm;
|
|
103
|
+
private attachDash;
|
|
104
|
+
/** O an oynayan kalite (ABR'de de gerçek seviye). */
|
|
105
|
+
currentLevel(): {
|
|
106
|
+
height: number;
|
|
107
|
+
bitrate: number | null;
|
|
108
|
+
} | null;
|
|
83
109
|
private loadNativeHls;
|
|
84
110
|
/** Native HLS denemesi sürüyor mu — ErrorScreen bu sırada gelen hatayı göstermez (hls.js'e geçilecek). */
|
|
85
111
|
isRecovering(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../src/hls/SourceManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceManager.d.ts","sourceRoot":"","sources":["../../src/hls/SourceManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAetH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,SAAS,GAAG,cAAc,QAAQ,CAAC,CAAC;AACzC,KAAK,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAEtD,KAAK,eAAe,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1D,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvD,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,CAAC;CAClE;AAwBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CA6B5E;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC5B,gFAAgF;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,iGAAiG;AACjG,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACnC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,yDAAyD;IACzD,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5E,2GAA2G;IAC3G,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9C,sIAAsI;IACtI,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;IACtE,6EAA6E;IAC7E,aAAa,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACtJ;AASD,qBAAa,aAAa;IAyBlB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAxB9B,OAAO,CAAC,GAAG,CAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC,8EAA8E;IAC9E,OAAO,CAAC,IAAI,CAA+C;IAC3D,sGAAsG;IACtG,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,0DAA0D;IAC1D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,IAAI,CAA2D;IACvE,iCAAiC;IACjC,OAAO,CAAC,GAAG,CAAW;gBAGlB,KAAK,EAAE,gBAAgB,EACN,SAAS,EAAE,sBAAsB;IAKtD,qDAAqD;IACrD,SAAS,CACL,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,eAAe,CAAC;QAAC,GAAG,CAAC,EAAE,cAAc,CAAC;QAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;QAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;KAAE,GAC5H,IAAI;IAQP,oGAAoG;IACpG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAI7C,2CAA2C;IAC3C,IAAI,SAAS,IAAI,MAAM,CAEtB;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDrD,0GAA0G;IAC1G,IAAI,MAAM,IAAI,kBAAkB,CAE/B;IAED,gGAAgG;IAChG,IAAI,WAAW,IAAI,WAAW,GAAG,IAAI,CAEpC;IAED,mFAAmF;YACrE,gBAAgB;YAehB,UAAU;IA6BxB,qDAAqD;IACrD,YAAY,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IASjE,OAAO,CAAC,aAAa;IAOrB,0GAA0G;IAC1G,YAAY,IAAI,OAAO;IAIvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAsBtB,wGAAwG;IACxG,OAAO,CAAC,sBAAsB;YAchB,WAAW;IAiGzB,OAAO,CAAC,cAAc;IAuBtB,sHAAsH;IACtH,sFAAsF;IACtF,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,6EAA6E;IAC7E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO7B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBlC;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAUxC,OAAO,IAAI,IAAI;CAYlB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { HopeDashOptions, HopeDrmOptions } from '../types';
|
|
2
|
+
export interface DashLevel {
|
|
3
|
+
index: number;
|
|
4
|
+
height: number;
|
|
5
|
+
bitrate: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DashTrack {
|
|
8
|
+
index: number;
|
|
9
|
+
label: string;
|
|
10
|
+
lang: string;
|
|
11
|
+
}
|
|
12
|
+
export interface DashTextTrack {
|
|
13
|
+
id: string;
|
|
14
|
+
kind: 'subtitles' | 'captions';
|
|
15
|
+
label: string;
|
|
16
|
+
lang: string;
|
|
17
|
+
}
|
|
18
|
+
export interface DashCallbacks {
|
|
19
|
+
/** Manifest altyazıları (boş = yok). */
|
|
20
|
+
onTextTracks?(tracks: DashTextTrack[]): void;
|
|
21
|
+
/** Seçili izin cue'ları (player'ın kendi katmanına kopyalanır). */
|
|
22
|
+
onCues?(trackId: string, cues: VTTCue[]): void;
|
|
23
|
+
onLevels(levels: DashLevel[], active: number): void;
|
|
24
|
+
onAudioTracks(tracks: DashTrack[], active: number): void;
|
|
25
|
+
onFatal(kind: 'network' | 'media' | 'drm' | 'unsupported'): void;
|
|
26
|
+
onError(info: {
|
|
27
|
+
code: number;
|
|
28
|
+
message: string;
|
|
29
|
+
fatal: boolean;
|
|
30
|
+
}): void;
|
|
31
|
+
/** Şifreli içerikte seçilen anahtar sistemi. */
|
|
32
|
+
onDrm?(keySystem: string): void;
|
|
33
|
+
}
|
|
34
|
+
export declare class DashEngine {
|
|
35
|
+
private readonly cb;
|
|
36
|
+
private readonly player;
|
|
37
|
+
private auto;
|
|
38
|
+
/** Dışarıdan gelen üst sınır (seviye sırası); -1 = yok. */
|
|
39
|
+
private extCap;
|
|
40
|
+
private fitPlayer;
|
|
41
|
+
private resize;
|
|
42
|
+
/** Seçili manifest altyazısı (dash.js sırası); -1 = yok. */
|
|
43
|
+
private textIndex;
|
|
44
|
+
/** Cue'lar dash.js dosyayı indirince eklenir — seçiliyken sayıyı izler. */
|
|
45
|
+
private cueTimer;
|
|
46
|
+
private copied;
|
|
47
|
+
private readonly video;
|
|
48
|
+
constructor(video: HTMLVideoElement, src: string, options: {
|
|
49
|
+
dash?: HopeDashOptions;
|
|
50
|
+
drm?: HopeDrmOptions;
|
|
51
|
+
autoplay: boolean;
|
|
52
|
+
fitPlayer?: boolean;
|
|
53
|
+
cmcd?: {
|
|
54
|
+
sessionId: string;
|
|
55
|
+
contentId?: string;
|
|
56
|
+
mode?: 'query' | 'header';
|
|
57
|
+
} | null;
|
|
58
|
+
}, cb: DashCallbacks);
|
|
59
|
+
private reps;
|
|
60
|
+
private reportLevels;
|
|
61
|
+
private reportAudio;
|
|
62
|
+
private textInfos;
|
|
63
|
+
private reportText;
|
|
64
|
+
/** Altyazı seç (`dash:<i>`); null = kapalı. */
|
|
65
|
+
selectText(id: string | null): void;
|
|
66
|
+
/** dash.js'in video üstündeki izi: kendi çizimini gizle, cue'ları player katmanına kopyala. */
|
|
67
|
+
private readonly syncCues;
|
|
68
|
+
/** dash.js'in oluşturduğu iz: adı manifestteki AdaptationSet kimliği. */
|
|
69
|
+
private isDashTrack;
|
|
70
|
+
/** -1 = otomatik. */
|
|
71
|
+
setLevel(index: number): void;
|
|
72
|
+
/** ABR üst sınırı; -1 = yok. */
|
|
73
|
+
setMaxLevel(index: number): void;
|
|
74
|
+
/** Üst sınır: dış sınır ve player boyutu (fitPlayer). Şu anki kalite üstündeyse tampon değiştirilerek hemen düşülür. */
|
|
75
|
+
private applyCap;
|
|
76
|
+
setAudioTrack(index: number): void;
|
|
77
|
+
/** O an oynayan video temsili. */
|
|
78
|
+
currentLevel(): {
|
|
79
|
+
height: number;
|
|
80
|
+
bitrate: number;
|
|
81
|
+
} | null;
|
|
82
|
+
get isLive(): boolean;
|
|
83
|
+
destroy(): void;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=dashEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashEngine.d.ts","sourceRoot":"","sources":["../../src/hls/dashEngine.ts"],"names":[],"mappings":"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"}
|