

# SDK do Reprodutor de IVS: integração com o JW Player
<a name="player-jwplayer"></a>

Esse documento descreve as funções mais importantes disponíveis na integração do JW Player do Amazon Interactive Video Service (IVS).

**Versão mais recente da integração do JW Player:** 1.50.0 ([Notas da versão](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/release-notes.html#mar19-26-player-web-ll))

## Conceitos básicos
<a name="jwplayer-getting-started"></a>

O suporte do Amazon IVS ao JW Player é implementado por meio de um provedor. O provedor do Amazon IVS só é compatível com o player da Web do JW Player. O provedor é carregado por meio de uma tag de script. Quaisquer streams que exijam a reprodução do provedor do Amazon IVS devem ser marcados com `type: 'ivs'` na lista de reprodução. O Amazon IVS é compatível com a versão 8.18.4 e posterior do JW Player.

### Configuração
<a name="jwplayer-getting-started-setup"></a>

Nessas instruções, `JW_PLAYER_DIV` é o nome de `<div>` da sua instância do JW Player e `IVS_STREAM` é a sua URL de reprodução do IVS. Para configurar o provedor do Amazon IVS e habilitar a reprodução:

1. Inclua a seguinte etiqueta `script` (para a versão mais recente da integração do reprodutor, que neste caso é 1.50.0):

   ```
   <script src="https://player.live-video.net/1.50.0/amazon-ivs-jw-provider.min.js"></script>
   ```

1. Use o tipo `ivs` para marcar os seus itens da lista de reprodução do IVS. Defina o valor `cast` no seu `setup()` para `null` (uma vez que o Chromecast não é compatível).

   ```
   jwplayer(JW_PLAYER_DIV).setup({
      playlist: [{
         file:IVS_STREAM,
         type: 'ivs',
      }]
   });
   ```

1. Se você quiser uma referência ao Player do Amazon IVS subjacente para fazer chamadas de API do Player do Amazon IVS ou referências a enumerações específicas do Amazon IVS para lidar com retornos de chamada, adicione um listener ao evento `'providerPlayer'`:

   ```
   jwplayer(JW_PLAYER_DIV).on('providerPlayer', function (player) {
      // player object has 'ivsPlayer' and 'ivsEvents' properties
      // ...callback code...
   });
   ```

### Código de exemplo
<a name="jwplayer-getting-started-code"></a>

Neste exemplo, `JW_PLAYER_LIB` é a URL para o script da biblioteca do JW Player e `IVS_STREAM` é a sua URL de reprodução do IVS.

```
<!DOCTYPE html>
<html lang="en">
<head>
   <script src=JW_PLAYER_LIB></script>
   <script src="https://player.live-video.net/1.50.0/amazon-ivs-jw-provider.min.js"></script>
</head>
<body>
   <div id='player'></div>
   <script>
      // set default values for ivsPlayer and ivsEvents
      var ivsPlayer = {};
      var ivsEvents = {};

      // define our player setup
      const ivsConfig = {
         playlist: [{
            file: IVS_STREAM,
            type: 'ivs',
         }]
      };

      jwplayer('player')
         .setup(ivsConfig)
         .on('providerPlayer', function (player) {
            console.log('Amazon IVS Player: ', player.ivsPlayer);
            console.log('Amazon IVS Player Events: ', player.ivsEvents);

            // store the reference to the Amazon IVS Player
            ivsPlayer = player.ivsPlayer;
            // store the reference to the Amazon IVS Player Events
            ivsEvents = player.ivsEvents;
         });
   </script>
</body>
</html>
```

## Eventos
<a name="jwplayer-events"></a>

Para ouvir eventos padrão do JW Player, use a função [ligar](https://docs.jwplayer.com/players/docs/jw8-reference#event-listening-with-the-jwp-api) do JW Player.

Para ouvir eventos específicos do Amazon IVS ou adicionar e remover listeners de eventos no player da Web do Amazon IVS, você deve ouvir o evento `'providerPlayer'` para obter uma referência do Player do Amazon IVS e, em seguida, adicionar a atividade de escuta de eventos a ela. Por exemplo:

```
// store a default value for ivsPlayer
var ivsPlayer = {};

// store references to the Amazon IVS Player and Amazon IVS Events:
jwplayer(JW_PLAYER_DIV).on('providerPlayer', function (player) {
   ivsPlayer = player.ivsPlayer;
});

// set up event listening
ivsPlayer.addEventListener(event, callback);
ivsPlayer.removeEventListener(event, callback);
```

em que `callback` é um retorno de chamada que você define e `event` é um dos itens a seguir: `PlayerEventType`, `PlayerState` ou `ErrorType`. Para obter informações sobre eventos, consulte [Amazon IVS Player SDK: Web Reference](https://aws.github.io/amazon-ivs-player-docs/1.50.0/web/) (SDK do Amazon IVS Player: referência para Web).

O evento `'providerPlayer'` é emitido pelo JW Player e o retorno de chamada que você registrar com ele receberá um objeto com os seguintes campos:


| Campo | Descrição | 
| --- | --- | 
|  `ivsPlayer`  |  Retorna a instância subjacente do player do Amazon IVS. A API da Web completa do player do Amazon IVS está disponível por meio dessa instância. Recomendamos usar a API básica de reprodução do JW Player tanto quanto possível e usar essa função apenas para acessar recursos específicos do Amazon IVS. As funções mais comuns que você provavelmente precisará acessar na instância do Player do Amazon IVS são `addEventListener()` e `removeEventListener()`.  | 
|  `ivsEvents`  |  Ela retorna um objeto com os campos `PlayerEventType`, `PlayerState` e `ErrorType`, que são mapeados para as suas enumerações associadas específicas do Amazon IVS. Para obter mais informações, consulte [Amazon IVS Player SDK: Web Reference](https://aws.github.io/amazon-ivs-player-docs/1.50.0/web/) (SDK do Amazon IVS Player: referência para Web).  | 

## Erros
<a name="jwplayer-errors"></a>

Para erros gerais do JW Player, use a função [on](https://docs.jwplayer.com/players/docs/jw8-reference#event-listening-with-the-jwp-api) (ligar) do JW Player para ouvir eventos de erro.

Para erros específicos do Amazon IVS, veja no player do Amazon IVS seus próprios erros:

```
// set default values for ivsPlayer and ivsEvents
var ivsPlayer = {};
var ivsEvents = {};

// store references to the Amazon IVS Player and Amazon IVS Events
jwplayer(JW_PLAYER_DIV).on('providerPlayer', function (player) {
   ivsPlayer = player.ivsPlayer;
   ivsEvents = player.ivsEvents;
});

// set up event listening:
let playerEvent = ivsEvents.PlayerEventType;
ivsPlayer.addEventListener(playerEvent.ERROR, callback);
```

O retorno de chamada receberá um objeto com os seguintes campos:


| Campo | Descrição | 
| --- | --- | 
|  `type`  |  O tipo de erro. Corresponde a eventos `ErrorType`. Para obter mais informações, consulte [Amazon IVS Player SDK: Web Reference](https://aws.github.io/amazon-ivs-player-docs/1.50.0/web/) (SDK do Amazon IVS Player: referência para Web).  | 
|  `code`  |  O código do erro.  | 
|  `source`  |  Origem do erro.  | 
|  `message`  |  Mensagem de erro legível por humanos.  | 

## Política de segurança de conteúdo
<a name="jwplayer-content-security-policy"></a>

A API do provedor do Amazon IVS está configurada para funcionar em páginas que usam a Política de segurança de conteúdo (CSP). Consulte a seção “Como trabalhar com a Política de segurança de conteúdo” em [SDK do reprodutor do IVS: guia para a Web](web-content-security-policy.md).

## Limitações
<a name="jwplayer-limitations"></a>

O provedor não oferece suporte para lançamentos. Se você habilitou a opção de lançamento no painel do JW Player, poderá desabilitá-la definindo `cast` para `null` ao acionar a `setup()`. Isso esconde o botão de lançamento.