senza-sdk 4.3.2-f445d5d.0 → 4.3.3-13bd44c.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/bundle.js +1 -1
- package/package.json +5 -2
- package/src/api.js +2 -2
- package/src/implementation/alarmManager.js +27 -4
- package/src/implementation/api.js +15 -9
- package/src/implementation/devHelper.js +2 -2
- package/src/implementation/deviceManager.js +22 -1
- package/src/implementation/lifecycle.js +69 -55
- package/src/implementation/messageManager.js +22 -0
- package/src/implementation/remotePlayer.js +144 -162
- package/src/interface/alarmManager.js +1 -1
- package/src/interface/remotePlayer.js +14 -9
- package/src/interface/utils.js +1 -2
- package/src/interface/version.js +1 -0
|
@@ -140,13 +140,76 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
140
140
|
* @private
|
|
141
141
|
*/
|
|
142
142
|
this._isPlaying = false;
|
|
143
|
+
}
|
|
143
144
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
145
|
+
/** @private Initialize the remote player
|
|
146
|
+
* @param {Object} uiStreamerSettings ui-streamer portion of the settings taken from session info
|
|
147
|
+
* */
|
|
148
|
+
async _init(uiStreamerSettings, triggerEvent) {
|
|
149
|
+
sdkLogger.info("Initializing RemotePlayer");
|
|
150
|
+
let playerState = {
|
|
151
|
+
isLoaded: false,
|
|
152
|
+
playbackUrl: ""
|
|
153
|
+
};
|
|
154
|
+
if (window.cefQuery) {
|
|
155
|
+
const FCID = getFCID();
|
|
156
|
+
const logger = sdkLogger.withFields({ FCID });
|
|
157
|
+
const message = {
|
|
158
|
+
type: "playerState",
|
|
159
|
+
fcid: FCID
|
|
160
|
+
};
|
|
161
|
+
const request = { target: "UI-Streamer", waitForResponse: false, message: JSON.stringify(message) };
|
|
162
|
+
try {
|
|
163
|
+
const playerStateStr = await new Promise((resolve, reject) => {
|
|
164
|
+
window.cefQuery({
|
|
165
|
+
request: JSON.stringify(request),
|
|
166
|
+
persistent: false,
|
|
167
|
+
onSuccess: (playerState) => {
|
|
168
|
+
logger.log("playerState request successfully returned", playerState);
|
|
169
|
+
resolve(playerState);
|
|
170
|
+
},
|
|
171
|
+
onFailure: (code, msg) => {
|
|
172
|
+
logger.error(`playerState request failed: ${code} ${msg}`);
|
|
173
|
+
reject();
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
playerState = JSON.parse(playerStateStr);
|
|
178
|
+
} catch {
|
|
179
|
+
logger.error("either failed to get or failed to parse player state");
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
this._loadMode = playerState?.isLoaded ? this.LoadMode.LOADED : this.LoadMode.NOT_LOADED;
|
|
183
|
+
|
|
184
|
+
this._isPlaying = window?.sessionStorage?.getItem("senzaSdk_isPlaying") === "true";
|
|
185
|
+
|
|
186
|
+
sdkLogger.info(`RemotePlayer initialized with load mode: ${this._loadMode}, senzaSdk_isPlaying: ${this._isPlaying}`);
|
|
187
|
+
this._loadedUrl = playerState?.playbackUrl || "";
|
|
188
|
+
// Make sure that the event listeners are registered only once
|
|
189
|
+
if (!this._isInitialized) {
|
|
190
|
+
this._addSenzaEventListeners();
|
|
191
|
+
}
|
|
192
|
+
this._isInitialized = true;
|
|
193
|
+
this._remotePlayerConfirmationTimeout = uiStreamerSettings?.remotePlayerConfirmationTimeout ?? DEFAULT_REMOTE_PLAYER_CONFIRMATION_TIMEOUT;
|
|
194
|
+
this._remotePlayerApiVersion = uiStreamerSettings?.remotePlayerApiVersion || 1;
|
|
195
|
+
this._multiSeekDelay = uiStreamerSettings?.multiSeekDelay || MULTI_SEEK_DELAY_MSEC;
|
|
196
|
+
|
|
197
|
+
sdkLogger.info(`remotePLayer isPlaying=${this._isPlaying}`);
|
|
198
|
+
|
|
199
|
+
let playbackMetadata = {};
|
|
200
|
+
try {
|
|
201
|
+
playbackMetadata = JSON.parse(triggerEvent?.playbackMetadata || "{}");
|
|
202
|
+
} catch (e) {
|
|
203
|
+
sdkLogger.error(`failed to parse playbackMetadata: ${e.message}`);
|
|
204
|
+
}
|
|
205
|
+
this._availabilityStartTime = playbackMetadata.availabilityStartTime;
|
|
206
|
+
this._updateTracks(playbackMetadata);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* @private Add event listeners for system events
|
|
211
|
+
*/
|
|
212
|
+
_addSenzaEventListeners() {
|
|
150
213
|
|
|
151
214
|
typeof document !== "undefined" && document.addEventListener("hs/remotePlayerEvent", (e) => {
|
|
152
215
|
sdkLogger.info("Got hs/remotePlayerEvent event with detail", JSON.stringify(e?.detail));
|
|
@@ -230,65 +293,7 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
230
293
|
};
|
|
231
294
|
this.dispatchEvent(licenseRequestEvent);
|
|
232
295
|
});
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
/** @private Initialize the remote player
|
|
236
|
-
* @param {Object} uiStreamerSettings ui-streamer portion of the settings taken from session info
|
|
237
|
-
* */
|
|
238
|
-
async _init(uiStreamerSettings, triggerEvent) {
|
|
239
|
-
let playerState = {
|
|
240
|
-
isLoaded: false,
|
|
241
|
-
playbackUrl: ""
|
|
242
|
-
};
|
|
243
|
-
if (window.cefQuery) {
|
|
244
|
-
const FCID = getFCID();
|
|
245
|
-
const logger = sdkLogger.withFields({ FCID });
|
|
246
|
-
const message = {
|
|
247
|
-
type: "playerState",
|
|
248
|
-
fcid: FCID
|
|
249
|
-
};
|
|
250
|
-
const request = { target: "UI-Streamer", waitForResponse: false, message: JSON.stringify(message) };
|
|
251
|
-
try {
|
|
252
|
-
const playerStateStr = await new Promise((resolve, reject) => {
|
|
253
|
-
window.cefQuery({
|
|
254
|
-
request: JSON.stringify(request),
|
|
255
|
-
persistent: false,
|
|
256
|
-
onSuccess: (playerState) => {
|
|
257
|
-
logger.log("playerState request successfully returned", playerState);
|
|
258
|
-
resolve(playerState);
|
|
259
|
-
},
|
|
260
|
-
onFailure: (code, msg) => {
|
|
261
|
-
logger.error(`playerState request failed: ${code} ${msg}`);
|
|
262
|
-
reject();
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
playerState = JSON.parse(playerStateStr);
|
|
267
|
-
} catch {
|
|
268
|
-
logger.error("either failed to get or failed to parse player state");
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
this._loadMode = playerState?.isLoaded ? this.LoadMode.LOADED : this.LoadMode.NOT_LOADED;
|
|
272
|
-
|
|
273
|
-
this._isPlaying = window?.sessionStorage?.getItem("senzaSdk_isPlaying") === "true";
|
|
274
|
-
|
|
275
|
-
sdkLogger.info(`RemotePlayer initialized with load mode: ${this._loadMode}, senzaSdk_isPlaying: ${this._isPlaying}`);
|
|
276
|
-
this._loadedUrl = playerState?.playbackUrl || "";
|
|
277
|
-
this._isInitialized = true;
|
|
278
|
-
this._remotePlayerConfirmationTimeout = uiStreamerSettings?.remotePlayerConfirmationTimeout ?? DEFAULT_REMOTE_PLAYER_CONFIRMATION_TIMEOUT;
|
|
279
|
-
this._remotePlayerApiVersion = uiStreamerSettings?.remotePlayerApiVersion || 1;
|
|
280
|
-
this._multiSeekDelay = uiStreamerSettings?.multiSeekDelay || MULTI_SEEK_DELAY_MSEC;
|
|
281
|
-
|
|
282
|
-
sdkLogger.info(`remotePLayer isPlaying=${this._isPlaying}`);
|
|
283
|
-
|
|
284
|
-
let playbackMetadata = {};
|
|
285
|
-
try {
|
|
286
|
-
playbackMetadata = JSON.parse(triggerEvent?.playbackMetadata || "{}");
|
|
287
|
-
} catch (e) {
|
|
288
|
-
sdkLogger.error(`failed to parse playbackMetadata: ${e.message}`);
|
|
289
|
-
}
|
|
290
|
-
this._availabilityStartTime = playbackMetadata.availabilityStartTime;
|
|
291
|
-
this._updateTracks(playbackMetadata);
|
|
296
|
+
sdkLogger.log("[RemotePlayer] Added event listeners for system events");
|
|
292
297
|
}
|
|
293
298
|
|
|
294
299
|
/** @private update audio and text tracks
|
|
@@ -751,7 +756,6 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
751
756
|
this._abortSetAudioLanguage = true;
|
|
752
757
|
this._abortSetSubtitleLanguage = true;
|
|
753
758
|
this._abortSeeking = true;
|
|
754
|
-
this._blackoutTime = 0;
|
|
755
759
|
if (reset) {
|
|
756
760
|
this._reset();
|
|
757
761
|
}
|
|
@@ -1363,14 +1367,23 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
1363
1367
|
}
|
|
1364
1368
|
}
|
|
1365
1369
|
|
|
1366
|
-
|
|
1370
|
+
/**
|
|
1371
|
+
* The function sets a blackout time for the screen.
|
|
1372
|
+
* The blackout time is the time when the screen will be blacked out.
|
|
1373
|
+
* This is useful for parental controls where the screen should be blacked out during certain times
|
|
1374
|
+
*
|
|
1375
|
+
* @param {Date} date
|
|
1376
|
+
* @returns {Promise<void>} A Promise that resolves once the blackout time is set.
|
|
1377
|
+
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if date is not a Date object or if the remote player api version is not supported
|
|
1378
|
+
*/
|
|
1379
|
+
setScreenBlackout(date) {
|
|
1367
1380
|
|
|
1368
1381
|
if (!this._isInitialized) {
|
|
1369
|
-
throw new RemotePlayerError(6500, "Cannot call
|
|
1382
|
+
throw new RemotePlayerError(6500, "Cannot call setScreenBlackout() if remote player is not initialized");
|
|
1370
1383
|
}
|
|
1371
1384
|
|
|
1372
1385
|
if (this._loadMode !== this.LoadMode.LOADED) {
|
|
1373
|
-
throw new RemotePlayerError(6001, "Cannot call
|
|
1386
|
+
throw new RemotePlayerError(6001, "Cannot call setScreenBlackout() if player is not loaded");
|
|
1374
1387
|
}
|
|
1375
1388
|
|
|
1376
1389
|
if (!(date instanceof Date)) {
|
|
@@ -1378,112 +1391,35 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
1378
1391
|
}
|
|
1379
1392
|
|
|
1380
1393
|
if (this._remotePlayerApiVersion < 2) {
|
|
1381
|
-
throw new RemotePlayerError(6504,
|
|
1394
|
+
throw new RemotePlayerError(6504, "setScreenBlackout(): internal error");
|
|
1382
1395
|
}
|
|
1383
1396
|
|
|
1384
1397
|
const blackoutTime = (date.getTime()/1000).toFixed(2);
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
const logger = sdkLogger.withFields({ FCID });
|
|
1388
|
-
logger.log("remotePlayer setBlackoutTime: sending screenBlackout action");
|
|
1389
|
-
const message = {
|
|
1390
|
-
type: "remotePlayer.screenBlackout",
|
|
1391
|
-
class: "remotePlayer",
|
|
1392
|
-
action: "screenBlackout",
|
|
1393
|
-
fcid: FCID,
|
|
1394
|
-
blackoutTime
|
|
1395
|
-
};
|
|
1396
|
-
const request = { target: "TC", waitForResponse: true, message: JSON.stringify(message) };
|
|
1397
|
-
return new Promise((resolve, reject) => {
|
|
1398
|
-
let timerId = 0;
|
|
1399
|
-
const timeBeforeSendingRequest = Date.now();
|
|
1400
|
-
const queryId = window.cefQuery({
|
|
1401
|
-
request: JSON.stringify(request),
|
|
1402
|
-
persistent: false,
|
|
1403
|
-
onSuccess: () => {
|
|
1404
|
-
this._blackoutTime = blackoutTime;
|
|
1405
|
-
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1406
|
-
logger.withFields({ duration }).log(`setBlackoutTime completed successfully after ${duration} ms`);
|
|
1407
|
-
timerId = clearTimer(timerId);
|
|
1408
|
-
resolve();
|
|
1409
|
-
},
|
|
1410
|
-
onFailure: (code, msg) => {
|
|
1411
|
-
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1412
|
-
logger.withFields({ duration }).log(`setBlackoutTime failed after ${duration} ms. Error code: ${code}, error message: ${msg}`);
|
|
1413
|
-
timerId = clearTimer(timerId);
|
|
1414
|
-
reject(new RemotePlayerError(code, msg));
|
|
1415
|
-
}
|
|
1416
|
-
});
|
|
1417
|
-
|
|
1418
|
-
logger.log(`window.cefQuery for setBlackoutTime returned query id ${queryId}`);
|
|
1419
|
-
const timeout = this._remotePlayerConfirmationTimeout + 1000;
|
|
1420
|
-
timerId = setTimeout(() => {
|
|
1421
|
-
logger.log(`setBlackoutTime reached timeout of ${timeout} ms, canceling query id ${queryId}`);
|
|
1422
|
-
window.cefQueryCancel(queryId);
|
|
1423
|
-
reject(new RemotePlayerError(6000, `setBlackoutTime reached timeout of ${timeout} ms`));
|
|
1424
|
-
}, timeout, queryId);
|
|
1425
|
-
});
|
|
1426
|
-
}
|
|
1427
|
-
sdkLogger.error("remotePlayer setBlackoutTime: window.cefQuery is undefined");
|
|
1428
|
-
return Promise.resolve(undefined);
|
|
1398
|
+
sdkLogger.info(`remotePlayer.setScreenBlackout(): setting blackout time to ${blackoutTime}`);
|
|
1399
|
+
return this._setScreenBlackout(blackoutTime);
|
|
1429
1400
|
}
|
|
1430
1401
|
|
|
1431
|
-
|
|
1402
|
+
/**
|
|
1403
|
+
* The function resets the currently set blackout time for the screen.
|
|
1404
|
+
* This is useful for parental controls to be reset the blackout time after it has been set.
|
|
1405
|
+
*
|
|
1406
|
+
* @returns {Promise<void>} A Promise that resolves once the blackout time is reset.
|
|
1407
|
+
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if the remote player api version is not supported
|
|
1408
|
+
*/
|
|
1409
|
+
resetScreenBlackout() {
|
|
1432
1410
|
if (!this._isInitialized) {
|
|
1433
|
-
throw new RemotePlayerError(6500, "Cannot call
|
|
1411
|
+
throw new RemotePlayerError(6500, "Cannot call resetScreenBlackout() if remote player is not initialized");
|
|
1434
1412
|
}
|
|
1435
1413
|
|
|
1436
1414
|
if (this._loadMode !== this.LoadMode.LOADED) {
|
|
1437
|
-
throw new RemotePlayerError(6001, "Cannot call
|
|
1415
|
+
throw new RemotePlayerError(6001, "Cannot call resetScreenBlackout() if player is not loaded");
|
|
1438
1416
|
}
|
|
1439
1417
|
|
|
1440
1418
|
if (this._remotePlayerApiVersion < 2) {
|
|
1441
|
-
throw new RemotePlayerError(6504,
|
|
1419
|
+
throw new RemotePlayerError(6504, "resetScreenBlackout(): internal error");
|
|
1442
1420
|
}
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
const FCID = getFCID();
|
|
1446
|
-
const logger = sdkLogger.withFields({ FCID });
|
|
1447
|
-
logger.log("remotePlayer resetBlackoutTime: sending screenBlackout action");
|
|
1448
|
-
const message = {
|
|
1449
|
-
type: "remotePlayer.screenBlackout",
|
|
1450
|
-
class: "remotePlayer",
|
|
1451
|
-
action: "screenBlackout",
|
|
1452
|
-
fcid: FCID,
|
|
1453
|
-
blackoutTime: 0 // Resetting the blackout time
|
|
1454
|
-
};
|
|
1455
|
-
const request = { target: "TC", waitForResponse: true, message: JSON.stringify(message) };
|
|
1456
|
-
return new Promise((resolve, reject) => {
|
|
1457
|
-
let timerId = 0;
|
|
1458
|
-
const timeBeforeSendingRequest = Date.now();
|
|
1459
|
-
const queryId = window.cefQuery({
|
|
1460
|
-
request: JSON.stringify(request),
|
|
1461
|
-
persistent: false,
|
|
1462
|
-
onSuccess: () => {
|
|
1463
|
-
this._blackoutTime = 0; // Resetting the blackout time
|
|
1464
|
-
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1465
|
-
logger.withFields({ duration }).log(`resetBlackoutTime completed successfully after ${duration} ms`);
|
|
1466
|
-
timerId = clearTimer(timerId);
|
|
1467
|
-
resolve();
|
|
1468
|
-
},
|
|
1469
|
-
onFailure: (code, msg) => {
|
|
1470
|
-
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1471
|
-
logger.withFields({ duration }).log(`resetBlackoutTime failed after ${duration} ms. Error code: ${code}, error message: ${msg}`);
|
|
1472
|
-
timerId = clearTimer(timerId);
|
|
1473
|
-
reject(new RemotePlayerError(code, msg));
|
|
1474
|
-
}
|
|
1475
|
-
});
|
|
1476
|
-
logger.log(`window.cefQuery for resetBlackoutTime returned query id ${queryId}`);
|
|
1477
|
-
const timeout = this._remotePlayerConfirmationTimeout + 1000;
|
|
1478
|
-
timerId = setTimeout(() => {
|
|
1479
|
-
logger.log(`resetBlackoutTime reached timeout of ${timeout} ms, canceling query id ${queryId}`);
|
|
1480
|
-
window.cefQueryCancel(queryId);
|
|
1481
|
-
reject(new RemotePlayerError(6000, `resetBlackoutTime reached timeout of ${timeout} ms`));
|
|
1482
|
-
}, timeout, queryId);
|
|
1483
|
-
});
|
|
1484
|
-
}
|
|
1485
|
-
sdkLogger.error("remotePlayer resetBlackoutTime: window.cefQuery is undefined");
|
|
1486
|
-
return Promise.resolve(undefined);
|
|
1421
|
+
sdkLogger.info("remotePlayer.resetScreenBlackout(): resetting blackout time");
|
|
1422
|
+
return this._setScreenBlackout(0);
|
|
1487
1423
|
}
|
|
1488
1424
|
|
|
1489
1425
|
/**
|
|
@@ -1837,6 +1773,52 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
1837
1773
|
sdkLogger.log(`remotePlayer _atomicSetSubtitleLanguage: textTrackId=${textTrackId} ended.`);
|
|
1838
1774
|
return setLanguageError ? Promise.reject(setLanguageError) : Promise.resolve();
|
|
1839
1775
|
}
|
|
1776
|
+
|
|
1777
|
+
_setScreenBlackout(blackoutTime) {
|
|
1778
|
+
if (window.cefQuery) {
|
|
1779
|
+
const FCID = getFCID();
|
|
1780
|
+
const logger = sdkLogger.withFields({ FCID });
|
|
1781
|
+
logger.log(`sending screenBlackout action at ${blackoutTime}`);
|
|
1782
|
+
const message = {
|
|
1783
|
+
type: "remotePlayer.screenBlackout",
|
|
1784
|
+
class: "remotePlayer",
|
|
1785
|
+
action: "screenBlackout",
|
|
1786
|
+
fcid: FCID,
|
|
1787
|
+
blackoutTime
|
|
1788
|
+
};
|
|
1789
|
+
const request = { target: "TC", waitForResponse: true, message: JSON.stringify(message) };
|
|
1790
|
+
return new Promise((resolve, reject) => {
|
|
1791
|
+
let timerId = 0;
|
|
1792
|
+
const timeBeforeSendingRequest = Date.now();
|
|
1793
|
+
const queryId = window.cefQuery({
|
|
1794
|
+
request: JSON.stringify(request),
|
|
1795
|
+
persistent: false,
|
|
1796
|
+
onSuccess: () => {
|
|
1797
|
+
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1798
|
+
logger.withFields({ duration }).log(`setBlackoutTime completed successfully after ${duration} ms`);
|
|
1799
|
+
timerId = clearTimer(timerId);
|
|
1800
|
+
resolve();
|
|
1801
|
+
},
|
|
1802
|
+
onFailure: (code, msg) => {
|
|
1803
|
+
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1804
|
+
logger.withFields({ duration }).log(`setBlackoutTime failed after ${duration} ms. Error code: ${code}, error message: ${msg}`);
|
|
1805
|
+
timerId = clearTimer(timerId);
|
|
1806
|
+
reject(new RemotePlayerError(code, msg));
|
|
1807
|
+
}
|
|
1808
|
+
});
|
|
1809
|
+
|
|
1810
|
+
logger.log(`window.cefQuery for screenBlackout returned query id ${queryId}`);
|
|
1811
|
+
const timeout = this._remotePlayerConfirmationTimeout + 1000;
|
|
1812
|
+
timerId = setTimeout(() => {
|
|
1813
|
+
logger.log(`screenBlackout reached timeout of ${timeout} ms, canceling query id ${queryId}`);
|
|
1814
|
+
window.cefQueryCancel(queryId);
|
|
1815
|
+
reject(new RemotePlayerError(6000, `screenBlackout reached timeout of ${timeout} ms`));
|
|
1816
|
+
}, timeout, queryId);
|
|
1817
|
+
});
|
|
1818
|
+
}
|
|
1819
|
+
sdkLogger.error("screenBlackout: window.cefQuery is undefined");
|
|
1820
|
+
return Promise.resolve(undefined);
|
|
1821
|
+
}
|
|
1840
1822
|
}
|
|
1841
1823
|
/**
|
|
1842
1824
|
*
|
|
@@ -117,7 +117,7 @@ export class RemotePlayerError extends Error {
|
|
|
117
117
|
* | 6501 | Player | load() was called while previous load/unload was still in progress |
|
|
118
118
|
* | 6502 | Player | unload() was called while previous unload/load was still in progress |
|
|
119
119
|
* | 6503 | Player | The remote player api call has invalid parameters |
|
|
120
|
-
* | 6504 | Player | The remote player api
|
|
120
|
+
* | 6504 | Player | The remote player api internal error |
|
|
121
121
|
* | 8001 | Player | Error pulling manifest. bad parameters |
|
|
122
122
|
* | 8002 | Player | Error pulling manifest. filters returned no data |
|
|
123
123
|
* | 8003 | Player | Error pulling manifest. fetch error |
|
|
@@ -400,22 +400,27 @@ class RemotePlayer extends EventTarget {
|
|
|
400
400
|
}
|
|
401
401
|
|
|
402
402
|
/**
|
|
403
|
-
*
|
|
403
|
+
* The function sets a blackout time for the screen.
|
|
404
|
+
* The blackout time is the time when the screen will be blacked out.
|
|
405
|
+
* This is useful for parental controls where the screen should be blacked out during certain times
|
|
406
|
+
* @private
|
|
404
407
|
* @param {Date} date
|
|
405
408
|
* @returns {Promise<void>} A Promise that resolves once the blackout time is set.
|
|
406
|
-
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if date is not a Date object or if the remote player api version is
|
|
409
|
+
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if date is not a Date object or if the remote player api version is not supported
|
|
407
410
|
*/
|
|
408
|
-
|
|
409
|
-
return noop("RemotePlayer.
|
|
411
|
+
setScreenBlackout(date) {
|
|
412
|
+
return noop("RemotePlayer.setScreenBlackout", date);
|
|
410
413
|
}
|
|
411
414
|
|
|
412
415
|
/**
|
|
413
|
-
*
|
|
416
|
+
* The function resets the currently set blackout time for the screen.
|
|
417
|
+
* This is useful for parental controls to be reset the blackout time after it has been set.
|
|
418
|
+
* @private
|
|
414
419
|
* @returns {Promise<void>} A Promise that resolves once the blackout time is reset.
|
|
415
|
-
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if the remote player api version is
|
|
420
|
+
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if the remote player api version is not supported
|
|
416
421
|
*/
|
|
417
|
-
|
|
418
|
-
return noop("RemotePlayer.
|
|
422
|
+
resetScreenBlackout() {
|
|
423
|
+
return noop("RemotePlayer.resetScreenBlackout");
|
|
419
424
|
}
|
|
420
425
|
|
|
421
426
|
/**
|
package/src/interface/utils.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const version = "4.3.3-13bd44c.0";
|