@oddin-gg/havik-player 2.15.4 → 2.15.5
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 +2 -2
- package/dist/havik-player.global.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +293 -288
- package/dist/index.js.map +1 -1
- package/docs/API.md +16 -15
- package/embed/index.html +1 -1
- package/examples/vanilla.html +1 -1
- package/package.json +1 -1
package/docs/API.md
CHANGED
|
@@ -155,12 +155,13 @@ See [`WaitForLive`](#waitforlive) for tuning, and [`createPlayer`](#createplayer
|
|
|
155
155
|
parameters. Use the **same api‑key** to resolve playback and to fetch licenses.
|
|
156
156
|
The managed and iframe players handle this for you.
|
|
157
157
|
|
|
158
|
-
> **FairPlay (Safari/iOS):**
|
|
159
|
-
> descriptor carries FairPlay material and the
|
|
160
|
-
>
|
|
158
|
+
> **FairPlay (Safari/iOS):** played by the browser's **native** player. When
|
|
159
|
+
> the playback descriptor carries FairPlay material and the browser is WebKit,
|
|
160
|
+
> `engine: 'auto'` selects the native engine, which fetches the application
|
|
161
161
|
> certificate, handles the encrypted event, POSTs the SPC to the signed license
|
|
162
|
-
> URL and applies the returned CKC.
|
|
163
|
-
>
|
|
162
|
+
> URL and applies the returned CKC. hls.js is not used for FairPlay: through
|
|
163
|
+
> MSE, WebKit reports the key usable and still renders nothing. No
|
|
164
|
+
> configuration is needed beyond the same api‑key used for playback.
|
|
164
165
|
>
|
|
165
166
|
> **iOS third‑party browsers (Chrome/Firefox/Edge on iOS):** iOS has no
|
|
166
167
|
> Widevine CDM, so protected playback in these browsers depends entirely on
|
|
@@ -170,16 +171,16 @@ See [`WaitForLive`](#waitforlive) for tuning, and [`createPlayer`](#createplayer
|
|
|
170
171
|
|
|
171
172
|
### Browser support
|
|
172
173
|
|
|
173
|
-
| Browser | Engine
|
|
174
|
-
| -------------------------------- |
|
|
175
|
-
| Chrome, Edge (desktop & Android) | hls.js
|
|
176
|
-
| Firefox | hls.js
|
|
177
|
-
| Safari (macOS
|
|
178
|
-
|
|
|
179
|
-
| Chrome/Firefox/Edge **on iOS** |
|
|
174
|
+
| Browser | Engine | DRM |
|
|
175
|
+
| -------------------------------- | --------------------------- | -------------------------------------------------- |
|
|
176
|
+
| Chrome, Edge (desktop & Android) | hls.js | Widevine ✓ |
|
|
177
|
+
| Firefox | hls.js | Widevine ✓ |
|
|
178
|
+
| Safari (macOS) | hls.js; native for FairPlay | FairPlay ✓ (native engine) |
|
|
179
|
+
| Safari (iPhone, iPad) | native HLS | FairPlay ✓ (native engine) |
|
|
180
|
+
| Chrome/Firefox/Edge **on iOS** | native HLS | probe with `detectDrmSupport` (no Widevine on iOS) |
|
|
180
181
|
|
|
181
|
-
Requires a browser with Media Source Extensions
|
|
182
|
-
|
|
182
|
+
Requires a browser with Media Source Extensions and Encrypted Media Extensions
|
|
183
|
+
(all evergreen browsers), or native HLS (iPhone, iPad, and older Safari).
|
|
183
184
|
|
|
184
185
|
---
|
|
185
186
|
|
|
@@ -237,7 +238,7 @@ player.on('error', (e) => console.error(e.code, e.httpStatus, e.message));
|
|
|
237
238
|
| `errorMessage` | `string` | the error's message | Message on the fatal-error card (otherwise the error's own message). |
|
|
238
239
|
| `waitForLive` | [`WaitForLive`](#waitforlive) | — | Arm on an upcoming match and auto‑attach at go‑live. |
|
|
239
240
|
| `lowLatency` | `'auto' \| boolean` | `'auto'` | `'auto'` lets the player decide from the manifest. |
|
|
240
|
-
| `engine` | `'auto' \| 'hls' \| 'native'` | `'auto'` | `'auto'` prefers hls.js
|
|
241
|
+
| `engine` | `'auto' \| 'hls' \| 'native'` | `'auto'` | `'auto'` uses the browser's native player on iPhone and iPad for every stream, and for FairPlay on any Apple browser; elsewhere it prefers hls.js (desktop Safari included) and falls back to native HLS. hls.js on iOS runs on ManagedMediaSource, which closed mid‑session and played slower than real time in testing. |
|
|
241
242
|
| `userId` | `string` | — | Optional viewer id (sent as `X-User-Id` on license requests). |
|
|
242
243
|
| `debug` | `boolean` | `false` | Turn on hls.js's internal console logging: fragment/part scheduling, ABR switches, EME key sessions and license traffic. For diagnosing a playback problem with Oddin support; leave it off in production (it logs on every fragment, and the EME lines include license request/response metadata). hls.js engine only. `hlsConfig.debug` still wins if you set both. |
|
|
243
244
|
| `hlsConfig` | `Partial<HlsConfig>` | — | Escape hatch for advanced hls.js tuning. |
|
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.15.
|
|
31
|
+
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.15.5/dist/havik-player.global.js" integrity="sha384-16ZwO+uKWeKiYEW9Ct6I8WAnkUXTxhYLNTHWTD2eRP3Z28U1exS61rVY1/MVvHEa" 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.
|
|
15
|
+
<script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@2.15.5/dist/havik-player.global.js" integrity="sha384-16ZwO+uKWeKiYEW9Ct6I8WAnkUXTxhYLNTHWTD2eRP3Z28U1exS61rVY1/MVvHEa" 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.15.
|
|
3
|
+
"version": "2.15.5",
|
|
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,
|