Seguimiento de varios estados de reproductor
A veces, dos estados de reproductor comienzan y finalizan al mismo tiempo, o el principio de uno es también el inicio de otro, como se muestra en la siguiente imagen:
La implementación actual permite ambas situaciones:
stateStart(pictureInPicture)- t0stateStart(mute)- t0stateEnd(mute)- t1stateEnd(pictureInPicture)- t1stateStart(fullScreen)- t1stateEnd(fullScreen)- t2
Sin embargo, esto requiere que emita varios eventos stateStart y stateEnd para indicar múltiples cambios de estado simultáneos. Para optimizar este comportamiento común, se ha implementado un nuevo tipo de evento statesUpdate, que finaliza una lista de estados e inicia otra de estados nuevos.
Con el nuevo evento statesUpdate, la lista anterior de eventos se convierte en lo siguiente:
statesUpdate(statesEnd=[], statesStart=[pictureInPicture, mute])- t0statesUpdate(statesEnd=[mute, pictureInPicture], statesStart=[fullScreen])- t1statesUpdate(statesEnd=[fullScreen], statesStart=[])- t2
El número de llamadas de actualización de estado se ha reducido de seis a tres para el mismo comportamiento. El último evento también podría haber sido un simple stateEnd(fullScreen).
Implementación de la API de Media Collection mpst-api
Puede utilizar la API de recopilación de medios para implementar el seguimiento de varios estados de reproductor.
Ejemplo
A continuación se muestra un ejemplo de implementación de la API de recopilación de medios para el seguimiento de varios estados de reproductor.
// 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
}
}
Implementación de Media SDK
No hay ninguna implementación del SDK de medios.