UNPKG

bitmovin-player-react-native

Version:

Official React Native bindings for Bitmovin's mobile Player SDKs.

151 lines 5.34 kB
import { NativeInstanceConfig } from '../nativeInstance'; /** * Available HTTP request types. */ export declare enum HttpRequestType { ManifestDash = "manifest/dash", ManifestHlsMaster = "manifest/hls/master", ManifestHlsVariant = "manifest/hls/variant", ManifestSmooth = "manifest/smooth", MediaProgressive = "media/progressive", MediaAudio = "media/audio", MediaVideo = "media/video", MediaSubtitles = "media/subtitles", MediaThumbnails = "media/thumbnails", DrmLicenseFairplay = "drm/license/fairplay", DrmCertificateFairplay = "drm/certificate/fairplay", DrmLicenseWidevine = "drm/license/widevine", KeyHlsAes = "key/hls/aes", Unknown = "unknown" } /** * Base64-encoded string representing the HTTP request body. */ export type HttpRequestBody = string; /** Represents an HTTP request. */ export interface HttpRequest { /** The HTTP request body to send to the server. */ body?: HttpRequestBody; /** * The HTTP Headers of the request. * Entries are expected to have the HTTP header as the key and its string content as the value. */ headers: Record<string, string>; /** The HTTP method of the request. */ method: string; /** The URL of the request. */ url: string; } /** * Base64-encoded string representing the HTTP response body. */ export type HttpResponseBody = string; /** Represents an HTTP response. */ export interface HttpResponse { /** The HTTP response body of the response. */ body?: HttpResponseBody; /** * The HTTP Headers of the response. * Entries are expected to have the HTTP header as the key and its string content as the value. */ headers: Record<string, string>; /** The corresponding request object of the response. */ request: HttpRequest; /** The HTTP status code of the response. */ status: number; /** The URL of the response. May differ from {@link HttpRequest.url} when redirects have happened. */ url: string; } /** * The network API gives the ability to influence network requests. * It enables preprocessing requests and preprocessing responses. */ export interface NetworkConfig extends NativeInstanceConfig { /** * Called before an HTTP request is made. * Can be used to change request parameters. * * @param type Type of the request to be made. * @param request The HTTP request to process. * @returns A Promise that resolves to an `HttpRequest` object. * - If the promise resolves, the player will use the processed request. * - If the promise rejects, the player will fall back to using the original request. * * @example * ``` * const requestCallback = (type: HttpRequestType, request: HttpRequest) => { * // Access current properties * * console.log(JSON.stringify(type)); * console.log(JSON.stringify(request)); * * // Modify the request * * request.headers['New-Header'] = 'val'; * request.method = 'GET'; * * // Return the processed request via a Promise * * const processed: HttpRequest = { * body: request.body, * headers: request.headers, * method: request.method, * url: request.url, * }; * return Promise.resolve(processed); * }; * * const player = usePlayer({ * networkConfig: { * preprocessHttpRequest: requestCallback, * }, * }); * ``` */ preprocessHttpRequest?: (type: HttpRequestType, request: HttpRequest) => Promise<HttpRequest>; /** * Called before an HTTP response is accessed by the player. * Can be used to access or change the response. * * @param type Type of the corresponding request object of the response. * @param response The HTTP response to process. * @returns A Promise that resolves to an `HttpResponse` object. * - If the promise resolves, the player will use the processed response. * - If the promise rejects, the player will fall back to using the original response. * * @example * ``` * const responseCallback = (type: HttpRequestType, response: HttpResponse) => { * // Access response properties * * console.log(JSON.stringify(type)); * console.log(JSON.stringify(response)); * * // Modify the response * * response.headers['New-Header'] = 'val'; * response.url = response.request.url; // remove eventual redirect changes * * // Return the processed response via a Promise * * const processed: HttpResponse = { * body: response.body, * headers: response.headers, * request: response.request, * status: response.status, * url: response.url, * }; * return Promise.resolve(processed); * }; * * // Properly attach the callback to the config * const player = usePlayer({ * networkConfig: { * preprocessHttpResponse: responseCallback, * }, * }); * ``` */ preprocessHttpResponse?: (type: HttpRequestType, response: HttpResponse) => Promise<HttpResponse>; } //# sourceMappingURL=networkConfig.d.ts.map