refactor(player):initialize assistManager for live only
This commit is contained in:
parent
d2923a5cb8
commit
5cc74df0af
3 changed files with 20 additions and 34 deletions
|
|
@ -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]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
|
@ -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) => {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue