+ if (oldVideo && oldVideo.id !== newVideo.id) {
+ await this.peertubeSocket.unsubscribeLiveVideos(oldVideo.id)
+ }
+
+ if (!newVideo.isLive) return
+
+ await this.peertubeSocket.subscribeToLiveVideosSocket(newVideo.id)
+ }
+
+ private buildLiveEventsSubscription () {
+ return this.peertubeSocket.getLiveVideosObservable()
+ .subscribe(({ type, payload }) => {
+ if (type === 'state-change') return this.handleLiveStateChange(payload.state)
+ if (type === 'views-change') return this.handleLiveViewsChange(payload.views)
+ })