Spårning av flera spelarlägen
Ibland börjar och slutar två spelarlägen samtidigt eller slutet av ett läge också i början av ett annat läge, vilket visas i följande bild:
Den aktuella implementeringen tillåter båda scenarierna:
stateStart(pictureInPicture)- t0stateStart(mute)- t0stateEnd(mute)- t1stateEnd(pictureInPicture)- t1stateStart(fullScreen)- t1stateEnd(fullScreen)- t2
Detta kräver dock att du utfärdar flera stateStart- och stateEnd-händelser för att signalera flera samtidiga statusändringar. I
för att optimera det här vanliga beteendet har en ny statesUpdate-händelsetyp implementerats som avslutar en lista över lägen
och startar en lista med nya lägen.
Med den nya statesUpdate-händelsen blir listan över händelser ovan:
statesUpdate(statesEnd=[], statesStart=[pictureInPicture, mute])- t0statesUpdate(statesEnd=[mute, pictureInPicture], statesStart=[fullScreen])- t1statesUpdate(statesEnd=[fullScreen], statesStart=[])- t2
Antalet anrop om tillståndsuppdateringar har reducerats från sex till tre för samma beteende. Den sista händelsen
kan också ha varit en enkel stateEnd(fullScreen).
API-implementering för Media Collection mpst-api
Du kan använda API:t för Media Collection för att implementera flera spårningar av spelartillstånd.
Exempel
Nedan visas ett exempel på en implementering av API:t för Media Collection för att spåra flera spelarlägen.
// statesUpdate (ex: mute and pictureInPicture are switched on)
http(s)://<Analytics_Visitor_Namespace>.hb-api.omtrdc.net/api/v1/sessions/<SID>/events
{
"eventType": "statesUpdate",
"params": {
"statesStart": [
{
"media.state.name": "mute"
},
{
"media.state.name": "pictureInPicture"
}
]
},
"playerTime": {
"playhead": 0,
"ts": 1569999130627
}
}
// statesUpdate (ex: mute and pictureInPicture are switched off, fullScreen is switched on)
http(s)://<Analytics_Visitor_Namespace>.hb-api.omtrdc.net/api/v1/sessions/<SID>/events
{
"eventType": "statesUpdate",
"params": {
"statesEnd": [
{
"media.state.name": "mute"
},
{
"media.state.name": "pictureInPicture"
}
],
"statesStart": [
{
"media.state.name": "fullScreen"
}
]
},
"playerTime": {
"playhead": 0,
"ts": 1569999130627
}
}
// statesUpdate (ex: fullScreen is switched off)
http(s)://<Analytics_Visitor_Namespace>.hb-api.omtrdc.net/api/v1/sessions/<SID>/events
{
"eventType": "statesUpdate",
"params": {
"statesEnd": [
{
"media.state.name": "fullScreen"
}
]
},
"playerTime": {
"playhead": 0,
"ts": 1569999130627
}
}
Implementering av SDK Media
Det finns ingen Media SDK-implementering.