# Configuración avanzada

La configuración avanzada te permite interactuar con los componentes básicos del propio reproductor.

## Módulos

La configuración de módulos es un conjunto de callbacks en tiempo de ejecución que puedes usar para configurar aún más componentes modulares de Fluid Player, como la transmisión.

Estos callbacks pueden llamarse más de una vez durante la inicialización del reproductor y el ciclo de vida normal del reproductor.

```js
fluidPlayer(
  'my-video',
  {
    modules: {
      configureHls: (options) => {
        return options;
      },
      onBeforeInitHls: (hls) => {
      },
      onAfterInitHls: (hls) => {
      },
      configureDash: (options) => {
        return options;
      },
      onBeforeInitDash: (dash) => {
      },
      onAfterInitDash: (dash) => {
      }
    }
  }
)
```

### configureHls

Este callback te permite configurar las opciones de HLS.js. Este callback recibe un argumento: un objeto con las opciones predeterminadas de HLS establecidas por el propio Fluid Player. Debe devolver un único objeto: las opciones de configuración finales para la instancia de HLS. Puedes modificar este objeto como consideres conveniente. Consulta [hls.js](https://github.com/video-dev/hls.js) la documentación para obtener más información sobre las opciones de configuración disponibles.

### onBeforeInitHls

Este callback se llama inmediatamente antes de que se inicialice una instancia de HLS.js desde la perspectiva de Fluid Player, antes de que HLS.js se adjunte al reproductor con la fuente elegida.

Este callback acepta un argumento: la instancia del objeto HLS.js.

### onAfterInitHls

Este callback se llama inmediatamente después de que se inicialice una instancia de HLS.js desde la perspectiva de Fluid Player, después de que HLS.js se adjunte al reproductor con la fuente elegida.

Este callback acepta un argumento: la instancia del objeto HLS.js.

### configureDash

Este callback te permite configurar las opciones de Dash.js. Este callback recibe un argumento: un objeto con las opciones predeterminadas de Dash establecidas por el propio Fluid Player. Debe devolver un único objeto: las opciones de configuración finales para la instancia de Dash. Puedes modificar este objeto como consideres conveniente. Consulta [Dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki) la documentación para obtener más información sobre las opciones de configuración disponibles.

### onBeforeInitDash

Este callback se llama inmediatamente antes de que se inicialice una instancia de Dash.js desde la perspectiva de Fluid Player, antes de que el método de Dash.js `initialize` sea llamado.

Este callback acepta un argumento: la instancia del objeto Dash.js.

### onAfterInitDash

Este callback se llama inmediatamente después de que se inicialice una instancia de Dash.js desde la perspectiva de Fluid Player, después de que el método de Dash.js `initialize` sea llamado.

Este callback acepta un argumento: la instancia del objeto Dash.js.

## Configuración de XHR

La configuración de XHR es un conjunto de callbacks en tiempo de ejecución que te permite modificar y personalizar todas las solicitudes HTTP enviadas por Fluid Player y sus módulos nativos.

Puedes usar estos callbacks de configuración para modificar el comportamiento y la configuración de las solicitudes.

**Importante:** estos callbacks NO se aplican a las solicitudes realizadas por módulos de terceros, como Dash.js, HLS.js y similares. Debes usar específicamente los callbacks de configuración nativos de esos módulos.

```js
fluidPlayer(
  'my-video',
  {
    onBeforeXMLHttpRequestOpen: (request) => {
    },
    onBeforeXMLHttpRequest: (request) => {
    },
  }
)
```

### onBeforeXMLHttpRequestOpen

Este callback se llama inmediatamente antes de que se invoque el `XMLHttpRequest#open` método. Recibe un argumento: una instancia de `XMLHttpRequest` que está a punto de enviarse.

### onBeforeXMLHttpRequest

Este callback se llama inmediatamente antes de que se invoque el `XMLHttpRequest#send` método. Recibe un argumento: una instancia de `XMLHttpRequest` que está a punto de enviarse.

*Última actualización el 22/6/2020*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fluidplayer.com/es/configuracion/advanced-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
