refactor(player):initialize assistManager for live only

This commit is contained in:
Alex Kaminskii 2022-12-26 21:30:00 +01:00
parent d2923a5cb8
commit 5cc74df0af
3 changed files with 20 additions and 34 deletions

View file

@ -2,10 +2,12 @@ import SimpleStore from './common/SimpleStore'
import type { Store } from './common/types' import type { Store } from './common/types'
import WebPlayer from './web/WebPlayer' import WebPlayer from './web/WebPlayer'
import WebLivePlayer from './web/WebLivePlayer'
type WebState = typeof WebPlayer.INITIAL_STATE //? type WebState = typeof WebPlayer.INITIAL_STATE //?
type WebPlayerStore = Store<WebState> type WebPlayerStore = Store<WebState>
export type IWebPlayer = WebPlayer export type IWebPlayer = WebPlayer
export type IWebLivePlayer = WebLivePlayer
export type IWebPlayerStore = WebPlayerStore export type IWebPlayerStore = WebPlayerStore
export function createWebPlayer(session: Record<string, any>, wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] { export function createWebPlayer(session: Record<string, any>, wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] {
@ -16,12 +18,12 @@ export function createWebPlayer(session: Record<string, any>, wrapStore?: (s:IWe
store = wrapStore(store) store = wrapStore(store)
} }
const player = new WebPlayer(store, session, null, false) const player = new WebPlayer(store, session, false)
return [player, store] return [player, store]
} }
export function createLiveWebPlayer(session: Record<string, any>, config: RTCIceServer[], wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] { export function createLiveWebPlayer(session: Record<string, any>, config: RTCIceServer[], wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebLivePlayer, IWebPlayerStore] {
let store: WebPlayerStore = new SimpleStore<WebState>({ let store: WebPlayerStore = new SimpleStore<WebState>({
...WebPlayer.INITIAL_STATE, ...WebPlayer.INITIAL_STATE,
}) })
@ -29,6 +31,6 @@ export function createLiveWebPlayer(session: Record<string, any>, config: RTCIce
store = wrapStore(store) store = wrapStore(store)
} }
const player = new WebPlayer(store, session, config, true) const player = new WebLivePlayer(store, session, config)
return [player, store] return [player, store]
} }

View file

@ -1,23 +1,15 @@
// import WebPlayer from './WebPlayer' import type { Store } from '../common/types'
// import AssistManager from './assist/AssistManager'
import WebPlayer from './WebPlayer'
import AssistManager from './assist/AssistManager'
// export default class WebLivePlayer extends WebPlayer { export default class WebLivePlayer extends WebPlayer {
// assistManager: AssistManager // public so far assistManager: AssistManager // public so far
// constructor(private wpState: Store<MMState & PlayerState>, session, config: RTCIceServer[]) { constructor(wpState: Store<typeof WebPlayer.INITIAL_STATE>, session:any, config: RTCIceServer[]) {
// super(wpState) super(wpState, session, true)
// this.assistManager = new AssistManager(session, this.messageManager, config, wpState)
// const endTime = !live && session.duration.valueOf()
// wpState.update({
// //@ts-ignore
// initialized: true,
// //@ts-ignore
// session,
// live: true,
// livePlay: true,
// })
// this.assistManager.connect(session.agentToken) this.assistManager = new AssistManager(session, this.messageManager, this.screen, config, wpState)
// } this.assistManager.connect(session.agentToken)
// } }
}

View file

@ -23,14 +23,13 @@ export default class WebPlayer extends Player {
liveTimeTravel: false, liveTimeTravel: false,
} }
private readonly screen: Screen
private readonly inspectorController: InspectorController private readonly inspectorController: InspectorController
protected readonly screen: Screen
protected readonly messageManager: MessageManager protected readonly messageManager: MessageManager
assistManager: AssistManager // public so far
private targetMarker: TargetMarker private targetMarker: TargetMarker
constructor(private wpState: Store<typeof WebPlayer.INITIAL_STATE>, session, config: RTCIceServer[], live: boolean) { constructor(private wpState: Store<typeof WebPlayer.INITIAL_STATE>, session: any, live: boolean) {
let initialLists = live ? {} : { let initialLists = live ? {} : {
event: session.events.toJSON(), event: session.events.toJSON(),
stack: session.stackEvents.toJSON(), stack: session.stackEvents.toJSON(),
@ -55,10 +54,8 @@ export default class WebPlayer extends Player {
this.inspectorController = new InspectorController(screen) this.inspectorController = new InspectorController(screen)
const endTime = !live && session.duration.valueOf() const endTime = session.duration?.valueOf() || 0
wpState.update({ wpState.update({
//@ts-ignore
initialized: true,
//@ts-ignore //@ts-ignore
session, session,
@ -67,11 +64,6 @@ export default class WebPlayer extends Player {
endTime, // : 0, endTime, // : 0,
}) })
// TODO: separate LiveWebPlayer
this.assistManager = new AssistManager(session, this.messageManager, screen, config, wpState)
if (live) {
this.assistManager.connect(session.agentToken)
}
} }
attach = (parent: HTMLElement) => { attach = (parent: HTMLElement) => {