diff options
Diffstat (limited to 'src/client/util/RecordingApi.ts')
-rw-r--r-- | src/client/util/RecordingApi.ts | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/client/util/RecordingApi.ts b/src/client/util/RecordingApi.ts index 48ea12fd9..ae5431a03 100644 --- a/src/client/util/RecordingApi.ts +++ b/src/client/util/RecordingApi.ts @@ -57,7 +57,7 @@ export class RecordingApi { this.absoluteStart = -1; // used for tracking movements in the view frame - this.recordingFFViews = null; + this.recordingFFViews = new Map(); this.tabChangeDisposeFunc = null; // for now, set playFFView @@ -126,9 +126,8 @@ export class RecordingApi { } } - public start = (meta?: Object) => { + public initTabTracker = () => { // init the dispose funcs on the page - this.recordingFFViews = new Map(); const docList = DocListCast(CollectionDockingView.Instance.props.Document.data); this.updateRecordingFFViewsFromTabs(docList); @@ -140,7 +139,9 @@ export class RecordingApi { console.log('change in tabs', change); this.updateRecordingFFViewsFromTabs(DocListCast(change), true); }); + } + public start = (meta?: Object) => { // update the presentation mode Doc.UserDoc().presentationMode = 'recording'; @@ -238,10 +239,7 @@ export class RecordingApi { // play movemvents will recreate them when the user resumes the presentation public pauseMovements = (): undefined | Error => { - if (!this._isPlaying) { - //return new Error('[recordingApi.ts] pauseMovements() failed: not playing') - return - } + if (!this._isPlaying) { console.warn('[recordingApi.ts] pauseMovements(): already on paused'); return;} this._isPlaying = false // TODO: set userdoc presentMode to browsing this.timers?.map(timer => clearTimeout(timer)) @@ -250,6 +248,7 @@ export class RecordingApi { } private videoBoxDisposeFunc: IReactionDisposer | null = null; + private videoBox: VideoBox | null = null; setVideoBox = (videoBox: VideoBox) => { console.log('setVideoBox', videoBox); @@ -258,20 +257,25 @@ export class RecordingApi { reaction(() => ({ playing: videoBox._playing, timeViewed: videoBox.player?.currentTime || 0 }), ({ playing, timeViewed }) => playing ? this.playMovements(videoBox.presentation, timeViewed) : this.pauseMovements() - ); + ); + this.videoBox = videoBox; } removeVideoBox = () => { if (this.videoBoxDisposeFunc == null) { console.warn('removeVideoBox on null videoBox'); return; } this.videoBoxDisposeFunc(); + + this.videoBox = null; + this.videoBoxDisposeFunc = null; } // by calling pause on the VideoBox, the pauseMovements will be called - public pauseVideoAndMovements = () => { - // this.videoBox?.Pause() + public pauseFromInteraction = () => { + Doc.UserDoc().presentationMode = 'none'; + this.videoBox?.Pause(); - this.pauseMovements() + this.pauseMovements(); // return this.videoBox == null } |