@reactoo/watchtogether-sdk-js 2.5.68 → 2.5.69
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/package.json
CHANGED
|
@@ -24,12 +24,13 @@ const syncModule = function ({room, emitter} = {}) {
|
|
|
24
24
|
let syncNextWaitTime = null;
|
|
25
25
|
let stopFlag = false;
|
|
26
26
|
let isSyncing = false;
|
|
27
|
-
|
|
27
|
+
let safeSpace = 2;
|
|
28
28
|
let playbackRate = 2;
|
|
29
29
|
let isPlaying = false;
|
|
30
30
|
let isPreloading = true;
|
|
31
31
|
let isProgrammaticallySeeked = false;
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
|
|
33
34
|
const startSyncLoop = () => {
|
|
34
35
|
|
|
35
36
|
if(!isConnected()) {
|
|
@@ -68,6 +69,21 @@ const syncModule = function ({room, emitter} = {}) {
|
|
|
68
69
|
};
|
|
69
70
|
|
|
70
71
|
loop();
|
|
72
|
+
|
|
73
|
+
//TODO: push sync
|
|
74
|
+
// const loop2 = () => {
|
|
75
|
+
// seekForward()
|
|
76
|
+
// .then(() => {
|
|
77
|
+
// setNextWaitTime(false);
|
|
78
|
+
// })
|
|
79
|
+
// .catch((e) => {
|
|
80
|
+
// setNextWaitTime(true);
|
|
81
|
+
// console.log('Sync failed', e);
|
|
82
|
+
// });
|
|
83
|
+
// syncWaitId = setTimeout(loop2, syncNextWaitTime);
|
|
84
|
+
// };
|
|
85
|
+
//
|
|
86
|
+
// loop2();
|
|
71
87
|
|
|
72
88
|
};
|
|
73
89
|
|
|
@@ -234,6 +250,37 @@ const syncModule = function ({room, emitter} = {}) {
|
|
|
234
250
|
}
|
|
235
251
|
};
|
|
236
252
|
|
|
253
|
+
const seekForward = () => {
|
|
254
|
+
return new Promise((resolve, reject) => {
|
|
255
|
+
let diff = _playerInterface.buffered.end(0) - _playerInterface.currentTime;
|
|
256
|
+
let diff_target = diff - safeSpace;
|
|
257
|
+
|
|
258
|
+
let __ = () => {
|
|
259
|
+
_playerInterface.setPlaybackRate(1);
|
|
260
|
+
isProgrammaticallySeeked = false;
|
|
261
|
+
isSyncing = false;
|
|
262
|
+
reject('Stalled');
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
console.log('Users stream is behind behind live by:',diff);
|
|
266
|
+
if(diff_target > 0) {
|
|
267
|
+
_emitter.once('stalled', __);
|
|
268
|
+
setExactTimeout(() => {
|
|
269
|
+
_playerInterface.setPlaybackRate(1);
|
|
270
|
+
isProgrammaticallySeeked = false;
|
|
271
|
+
isSyncing = false;
|
|
272
|
+
_emitter.off('stalled', __);
|
|
273
|
+
resolve();
|
|
274
|
+
}, (diff_target * 1000) / playbackRate, 20);
|
|
275
|
+
isProgrammaticallySeeked = true;
|
|
276
|
+
isSyncing = true;
|
|
277
|
+
_playerInterface.setPlaybackRate(playbackRate);
|
|
278
|
+
} else {
|
|
279
|
+
resolve();
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
};
|
|
283
|
+
|
|
237
284
|
const seekBy = (time) => {
|
|
238
285
|
return new Promise((resolve, reject) => {
|
|
239
286
|
if(_playerInterface.currentTime !== time) {
|
package/src/modules/wt-iot.js
CHANGED
|
@@ -163,7 +163,7 @@ class Iot {
|
|
|
163
163
|
if(payload.display) {
|
|
164
164
|
const decodedDisplay = decodeJanusDisplay(payload.display);
|
|
165
165
|
if(decodedDisplay.userId) {
|
|
166
|
-
payload = {...payload, userId: decodedDisplay.userId, role: decodedDisplay.role};
|
|
166
|
+
payload = {...payload, userId: decodedDisplay.userId, role: decodedDisplay.role, start: decodedDisplay.start};
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|