# Configuração avançada

A configuração avançada permite interagir com os blocos de construção do próprio player.

## Módulos

A configuração de módulos é um conjunto de callbacks em tempo de execução que você pode usar para configurar ainda mais componentes modulares do Fluid Player, como streaming.

Esses callbacks podem ser chamados mais de uma vez durante a inicialização do player e o ciclo de vida normal do player.

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

### configureHls

Este callback permite configurar as opções do HLS.js. Este callback recebe um argumento - objeto com as opções padrão do HLS definidas pelo próprio Fluid Player. Ele deve retornar um único objeto - as opções finais de configuração da instância HLS. Você pode modificar este objeto como achar adequado. Veja [hls.js](https://github.com/video-dev/hls.js) a documentação para mais informações sobre as opções de configuração disponíveis.

### onBeforeInitHls

Este callback é chamado imediatamente antes de uma instância do HLS.js ser inicializada do ponto de vista do Fluid Player - antes de o HLS.js ser anexado ao player com a fonte escolhida.

Este callback aceita um argumento - a instância do objeto HLS.js.

### onAfterInitHls

Este callback é chamado imediatamente após uma instância do HLS.js ser inicializada do ponto de vista do Fluid Player - depois de o HLS.js ser anexado ao player com a fonte escolhida.

Este callback aceita um argumento - a instância do objeto HLS.js.

### configureDash

Este callback permite configurar as opções do Dash.js. Este callback recebe um argumento - objeto com as opções padrão do Dash definidas pelo próprio Fluid Player. Ele deve retornar um único objeto - as opções finais de configuração da instância Dash. Você pode modificar este objeto como achar adequado. Veja [Dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki) a documentação para mais informações sobre as opções de configuração disponíveis.

### onBeforeInitDash

Este callback é chamado imediatamente antes de uma instância do Dash.js ser inicializada do ponto de vista do Fluid Player - antes do método Dash.js `initialize` ser chamado.

Este callback aceita um argumento - a instância do objeto Dash.js.

### onAfterInitDash

Este callback é chamado imediatamente após uma instância do Dash.js ser inicializada do ponto de vista do Fluid Player - depois do método Dash.js `initialize` ser chamado.

Este callback aceita um argumento - a instância do objeto Dash.js.

## configuração de XHR

A configuração de XHR é um conjunto de callbacks em tempo de execução que permite modificar e personalizar todas as solicitações HTTP enviadas pelo Fluid Player e seus módulos nativos.

Você pode usar esses callbacks de configuração para modificar o comportamento e a configuração das solicitações.

**Importante:** estes callbacks NÃO se aplicam a solicitações feitas por módulos de terceiros, como Dash.js, HLS.js e similares. Você precisa usar especificamente os callbacks de configuração nativos desses módulos.

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

### onBeforeXMLHttpRequestOpen

Este callback é chamado imediatamente antes de o `XMLHttpRequest#open` método ser chamado. Ele recebe um argumento - uma instância de `XMLHttpRequest` a ser enviado.

### onBeforeXMLHttpRequest

Este callback é chamado imediatamente antes de o `XMLHttpRequest#send` método ser chamado. Ele recebe um argumento - uma instância de `XMLHttpRequest` a ser enviado.

*Última atualização em 22/06/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/portuguese/configuracao/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.
