@oddin-gg/havik-player 2.14.0 → 2.15.1
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/havik-player.global.js +4 -3
- package/dist/havik-player.global.js.map +1 -1
- package/dist/index.cjs +4 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +191 -127
- package/dist/index.js.map +1 -1
- package/docs/API.md +15 -1
- package/embed/index.html +1 -1
- package/examples/vanilla.html +1 -1
- package/package.json +1 -1
package/docs/API.md
CHANGED
|
@@ -313,6 +313,17 @@ can't crash the player: if you pass the count‑based `liveSyncDurationCount` /
|
|
|
313
313
|
rejects mixing the two); if you set `liveSyncDuration` alone, a matching ceiling
|
|
314
314
|
is derived above it.
|
|
315
315
|
|
|
316
|
+
- **Futile catch‑up is stopped.** hls.js speeds playback up (to 1.5×) whenever
|
|
317
|
+
latency sits above the target, and only lowers its ambition after a counted
|
|
318
|
+
rebuffer. On an edge that is itself seconds behind, a player that keeps a
|
|
319
|
+
deeper buffer (Safari) can chase at 1.5× for a whole session without ever
|
|
320
|
+
gaining a second, which viewers see as constant stutter. The SDK watches the
|
|
321
|
+
chase on its 3 s tick: a chase at ≥1.2× that gains under 0.5 s of latency
|
|
322
|
+
over the next three ticks (12 s in all) moves the target up to where playback
|
|
323
|
+
actually is (never closer than 1 s to the drift ceiling), and the rate drops
|
|
324
|
+
back to 1.0×. One‑way for the session; `targetLatencySeconds` reflects the
|
|
325
|
+
move and `liveRetargets` counts them. A rate the host sets itself is ignored.
|
|
326
|
+
|
|
316
327
|
> **Migration note:** the default `liveLatencyTarget` **dropped from 3 s to 2 s**.
|
|
317
328
|
> Nothing to change: the drift ceiling stays 12 s and the ABR reaction budgets
|
|
318
329
|
> are derived from the target, so they tighten with it automatically. Expect
|
|
@@ -409,7 +420,10 @@ the theme colors; customise the copy with `endedMessage`/`interruptedMessage`/`e
|
|
|
409
420
|
`statusOverlays: false` to drive your own end/error UI from the player events.
|
|
410
421
|
It auto-hides during playback, supports keyboard shortcuts (space/`k` play-pause,
|
|
411
422
|
`m` mute, `f` fullscreen, `c` captions, `l` go-live, arrows seek/volume), and is
|
|
412
|
-
fully keyboard- and screen-reader-accessible.
|
|
423
|
+
fully keyboard- and screen-reader-accessible. On a mouse, one click on the
|
|
424
|
+
picture plays/pauses. On touch, a single tap shows or hides the bar and a double
|
|
425
|
+
tap plays/pauses, so bringing the controls back on a phone never pauses the
|
|
426
|
+
stream.
|
|
413
427
|
|
|
414
428
|
> **Fullscreen on iPhone:** iPhone Safari has no element Fullscreen API, so the
|
|
415
429
|
> fullscreen button there enters the **video-native** fullscreen
|
package/embed/index.html
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
beacons endpoint can be derived and QoE analytics is silently off.
|
|
29
29
|
`analytics` is honoured from the injected config only, never the query.
|
|
30
30
|
-->
|
|
31
|
-
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.
|
|
31
|
+
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.15.1/dist/havik-player.global.js" integrity="sha384-QfwGP+4bjAqO+AlPAKFvmkfq4JLAYGaAFgCPt2WDyaxn4Qf7vLZrPo4fwwoy0pDQ" crossorigin="anonymous"></script>
|
|
32
32
|
<script>
|
|
33
33
|
HavikPlayer.bootEmbed();
|
|
34
34
|
</script>
|
package/examples/vanilla.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
shipped in each npm release is pinned to that release with Subresource
|
|
13
13
|
Integrity, injected at publish time (scripts/inject-sri.mjs). In
|
|
14
14
|
production, always use a pinned + SRI'd tag like the released copy. -->
|
|
15
|
-
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.
|
|
15
|
+
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.15.1/dist/havik-player.global.js" integrity="sha384-QfwGP+4bjAqO+AlPAKFvmkfq4JLAYGaAFgCPt2WDyaxn4Qf7vLZrPo4fwwoy0pDQ" crossorigin="anonymous"></script>
|
|
16
16
|
<script>
|
|
17
17
|
(async () => {
|
|
18
18
|
const player = await HavikPlayer.createPlayer({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oddin-gg/havik-player",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.15.1",
|
|
4
4
|
"description": "Havik HTML5 player SDK — LL-HLS + DRM playback for Oddin live streams (managed, bring-your-own-player, and iframe-embed modes).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|