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.

NOTE
Het ​ verzoek van Gebeurtenissen ​ keert geen gegevens terug naar de cliënt voorbij een de reactiecode van HTTP.

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.

recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb