The network API gives the ability to influence network requests. It enables preprocessing requests, processing responses or influencing the retry behavior.

Since

7.4

Hierarchy

  • NetworkConfig

Properties

preprocessHttpRequest?: ((type, request) => Promise<HttpRequest>)

Type declaration

    • (type, request): Promise<HttpRequest>
    • Can be used to change request parameters before a request is made.
      This will not be called before a retryHttpRequest.

      Example:

      network: {
      preprocessHttpRequest: function(type, request) {
      if (type === bitmovin.player.HttpRequestType.DRM_LICENSE_WIDEVINE) {
      // withCredentials = true
      request.credentials = 'include';
      // custom headers
      request.headers['customdata'] = 'AUTHENTICATION-XML';
      } else if (type === bitmovin.player.HttpRequestType.MEDIA_VIDEO ||
      type === bitmovin.player.HttpRequestType.MEDIA_AUDIO) {

      // async call of custom API and add token to media URLs
      return customApiCall.then(function(data) {
      request.url += '?token=' + data.token;
      return request;
      });
      }
      return Promise.resolve(request);
      }
      }

      Parameters

      Returns Promise<HttpRequest>

      The request can be canceled with Promise.reject() or data can be retrieved asynchronously before processing the request properties.

preprocessHttpResponse?: (<T>(type, response) => Promise<HttpResponse<T>>)

Type declaration

    • <T>(type, response): Promise<HttpResponse<T>>
    • Can be used to the access or change properties of the response before it gets into the player.

      Example:

      network: {
      preprocessHttpResponse: function(type, response) {
      if (type === bitmovin.player.HttpRequestType.DRM_LICENSE_WIDEVINE) {
      drmHeaders = response.headers;
      }
      }
      }

      Type Parameters

      Parameters

      • type: HttpRequestType

        String type of the request to be made.

      • response: HttpResponse<T>

        Contains all important fields of the response.

      Returns Promise<HttpResponse<T>>

      The response that shall go back into the player.

retryHttpRequest?: (<T>(type, response, retry) => Promise<HttpRequest>)

Type declaration

    • <T>(type, response, retry): Promise<HttpRequest>
    • Is called when a request is failed. Will override the default retry behavior.

      Example:

      network: {
      retryHttpRequest: function(type, response) {
      // delay the retry by 1 second
      return new Promise(function(resolve) {
      setTimeout(function() {
      resolve(response.request);
      }, 1000);
      });
      }
      }

      Type Parameters

      Parameters

      • type: HttpRequestType

        String type of the request to be made.

      • response: HttpResponse<T>

        Response of the failed request.

      • retry: number

        Amount of retries

      Returns Promise<HttpRequest>

      The request that shall be used on the retry.

sendHttpRequest?: (<T>(type, request) => RequestController<T>)

Type declaration

    • <T>(type, request): RequestController<T>
    • Can be used to provide a custom implementation to download requested files. When null or undefined is returned for a certain request, the default implementation is used.

      Example:

      network: {
      sendHttpRequest: function(type, request) {
      return {
      getResponse: function() {
      // get data from somewhere else
      var response = {
      request: request,
      url: request.url,
      headers: {},
      status: 200,
      statusText: 'OK',
      body: 'my message',
      }
      return Promise.resolve(response);
      },
      setProgressListener: function() {},
      cancel: function() {},
      }
      }
      }

      Type Parameters

      Parameters

      Returns RequestController<T>

      The custom implementation of the RequestController.

      Since

      7.7

Generated using TypeDoc