

# SDK IVS Player: integrazione di JW Player
<a name="player-jwplayer"></a>

In questo documento sono descritte le funzioni più importanti disponibili nell'integrazione di Amazon Interactive Video Service (IVS) JW Player.

**Ultima versione dell'integrazione di JW Player:** 1.52.0 ([Note di rilascio](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/release-notes.html#may14-26-player-web-ll))

## Nozioni di base
<a name="jwplayer-getting-started"></a>

Il supporto Amazon IVS per JW Player viene implementato tramite un provider. Il provider di Amazon IVS è supportato solo sul lettore Web di JW Player. Tale provider viene caricato tramite un tag script e tutti i flussi che richiedono la riproduzione del provider Amazon IVS devono essere contrassegnati con `type: 'ivs'` nella playlist. Amazon IVS supporta JW Player versione 8.18.4 e successive.

### Configurazione
<a name="jwplayer-getting-started-setup"></a>

In queste istruzioni, `JW_PLAYER_DIV` è il nome del `<div>` dell'istanza di JW Player e `IVS_STREAM` è l'URL di riproduzione IVS. Per configurare il provider Amazon IVS e consentire la riproduzione:

1. Includi il seguente tag `script` (per l'ultima versione dell'integrazione del lettore, in questo caso 1.52.0):

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

1. Utilizzare il tipo `ivs` per contrassegnare gli elementi della playlist IVS. Impostare il valore `cast` nel `setup()` su `null` (poiché Chromecast non è supportato).

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

1. Se si desidera un riferimento al lettore Amazon IVS sottostante per effettuare chiamate all'API del lettore Amazon IVS o se si desiderano riferimenti alle enumerazioni specifiche di Amazon IVS per la gestione dei callback, aggiungere un listener all'evento `'providerPlayer'`:

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

### Codice di esempio
<a name="jwplayer-getting-started-code"></a>

In questo esempio, `JW_PLAYER_LIB` è l'URL dello script della libreria di JW Player e `IVS_STREAM` è l'URL di riproduzione IVS.

```
<!DOCTYPE html>
<html lang="en">
<head>
   <script src=JW_PLAYER_LIB></script>
   <script src="https://player.live-video.net/1.52.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>
```

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

Per ascoltare gli eventi standard di JW Player, utilizzare la funzione [on](https://docs.jwplayer.com/players/docs/jw8-reference#event-listening-with-the-jwp-api) di JW Player.

Per ascoltare gli eventi specifici di Amazon IVS o per aggiungere e rimuovere i listener di eventi sul lettore Web Amazon IVS, è necessario ascoltare l'evento `'providerPlayer'` in modo da ottenere un riferimento al lettore Amazon IVS e aggiungere quindi l'ascolto dell'evento su di esso. Ad esempio:

```
// 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);
```

dove `callback` è un callback definito e `event` è una delle seguenti opzioni: `PlayerEventType`, `PlayerState` o `ErrorType`. Per ulteriori informazioni sugli eventi, consultare [SDK del lettore Amazon IVS: documentazione di riferimento per il Web](https://aws.github.io/amazon-ivs-player-docs/1.52.0/web/).

L'evento `'providerPlayer'` viene emesso da JW Player e il callback che si registra con esso riceverà un oggetto con i seguenti campi:


| Campo | Descrizione | 
| --- | --- | 
| `ivsPlayer` | Restituisce l'istanza del lettore Amazon IVS sottostante. L'API Web completa del lettore Amazon IVS è disponibile tramite questa istanza. Consigliamo di utilizzare il più possibile l'API di riproduzione di base di JW Player e di utilizzare questa funzione solo per accedere alle funzioni specifiche di Amazon IVS. Le funzioni più comuni a cui è probabile che sia necessario accedere sull'istanza del lettore Amazon IVS sono `addEventListener()` e `removeEventListener()`. | 
| `ivsEvents` | Restituisce un oggetto con i campi `PlayerEventType`, `PlayerState` e `ErrorType`, mappati alle enumerazioni specifiche di Amazon IVS associate. Per ulteriori informazioni, consultare [SDK del lettore Amazon IVS: documentazione di riferimento per il Web](https://aws.github.io/amazon-ivs-player-docs/1.52.0/web/). | 

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

Per gli errori generali di JW Player, utilizzare la funzione [on](https://docs.jwplayer.com/players/docs/jw8-reference#event-listening-with-the-jwp-api) di JW Player per ascoltare gli eventi di errore.

Per gli errori specifici di Amazon IVS, ascoltare il lettore Amazon IVS per i propri errori:

```
// 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);
```

Il callback riceverà un oggetto con i seguenti campi:


| Campo | Descrizione | 
| --- | --- | 
| `type` | Il tipo di errore. Corrisponde agli eventi `ErrorType`. Per ulteriori informazioni, consultare [SDK Amazon IVS Player: Documentazione di riferimento per il Web](https://aws.github.io/amazon-ivs-player-docs/1.52.0/web/). | 
| `code` | Il codice di errore. | 
| `source` | L'origine dell'errore. | 
| `message` | Un messaggio di errore leggibile dall'utente. | 

## Policy di sicurezza dei contenuti
<a name="jwplayer-content-security-policy"></a>

L'API del provider Amazon IVS è configurata per funzionare sulle pagine che utilizzano le policy di sicurezza dei contenuti (CSP). Consultare la sezione "Utilizzo della policy di sicurezza dei contenuti" nella [SDK IVS Player: guida per il web](web-content-security-policy.md).

## Limitazioni
<a name="jwplayer-limitations"></a>

Il provider non supporta il casting. Se il casting nel dashboard di JW Player è stato abilitato, è possibile disabilitarlo impostando `cast` su `null` quando richiami `setup()`. Questa operazione nasconde il pulsante del casting.