Gebeurtenissen in de wachtrij plaatsen wanneer de reactie van de sessie traag is queueing-events-when-sessions-response-is-slow
De Media Collection API is RESTful: d.w.z., maakt u een HTTP- verzoek en wacht op de reactie. Dit is een belangrijk punt slechts voor wanneer u a verzoek van zittingen maakt om een identiteitskaart van de Zitting aan het begin van videoplayback te verkrijgen. Dit is belangrijk omdat identiteitskaart van de Zitting voor alle verdere volgende het volgen vraag wordt vereist.
Het is mogelijk dat uw speler gebeurtenissen kan in brand steken alvorens de reactie van Zittingen (met de parameter van identiteitskaart van de Zitting) van het achtereind terugkeert. Als dit voorkomt, moet uw app om het even welke volgende gebeurtenissen in de rij plaatsen die tussen het verzoek van Zittingen en zijn reactie aankomen. Wanneer de reactie van Sessies aankomt, zou u om het even welke een rij gevormde gebeurtenissen eerst moeten verwerken, dan kunt u beginnen levende gebeurtenissen met de Gebeurtenissen vraag.
Controleer de Speler van de Verwijzing in uw distributie voor één manier om gebeurtenissen te verwerken alvorens een identiteitskaart van de Zitting te ontvangen. Bijvoorbeeld:
var eventData = {}; // JSON payload
eventData.playerTime = getPlayerTime(); // Required
eventData.eventType = "play"; // Required
eventData.params = {}; // Optional for events
VideoPlayer.prototype._collectEvent =
function(eventData) {
// If we don't have a Session ID yet,
// queue the event and return...
if (!sessionStarted) {
console.log("[Player] Queueing event ");
_pendingEvents.push(eventData);
return;
}
// If we DO have a Session ID, process the
// tracking event...
apiClient.request({
"baseUrl": "{endpoint}",
"path": "api/v1/{sid}/events", // events request
"method": "POST",
"data": eventData
}).then((response) => {
[…]
}
}
VideoPlayer.prototype.collectEvent =
function (eventType, eventParams) {
if (typeof eventParams === 'undefined') {
eventParams = {};
}
this._collectEvent({
eventType: eventType, // Required
playerTime: getPlayerTime(), // Required
params: eventParams // Optional
});
};
VideoPlayer.prototype.getPlayerTime = function() {
return {
playhead: this.getPlayhead(), // playhead value in seconds
ts: this.getCurrentTimestamp() // timestamp value in milliseconds
};
};
Proces om het even welke een rij gevormde gebeurtenissen - de verwijzingsspeler verwerkt een rij gevormde gebeurtenissen als volgt:
[…]
this._processPendingEvents(); // Once you have a Session ID,
[…] // process any queued events
VideoPlayer.prototype._processPendingEvents =
function() {
this._pendingEvents.forEach((eventData) => {
this._collectEvent(eventData);
});
this._pendingEvents = [];
}
Ga door met het verwerken van 'tracking'-gebeurtenissen zoals deze zich voordoen.