

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

このドキュメントでは、Amazon Interactive Video Service (IVS) JW Player 統合で利用可能な最も重要な機能について説明します。

**JW Player 統合の最新バージョン:** 1.50.0 ([リリースノート](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/release-notes.html#mar19-26-player-web-ll))

## 開始方法
<a name="jwplayer-getting-started"></a>

JW Player に対する Amazon IVS サポートは、プロバイダーを通じて実装されます。Amazon IVS プロバイダーは、JW Player の Web プレイヤーでのみサポートされています。プロバイダーはスクリプトタグを介してロードされます。Amazon IVS プロバイダーの再生を必要とするストリームは、プレイリストの`type: 'ivs'`でタグ付けされている必要があります。Amazon IVS は JW Player のバージョン 8.18.4 以降をサポートしています。

### セットアップ
<a name="jwplayer-getting-started-setup"></a>

以下の手順において、`JW_PLAYER_DIV`は JW Player インスタンスの`<div>`の名前です。`IVS_STREAM`は、IVS 再生 URL です。Amazon IVS プロバイダーをセットアップして再生を有効にするには

1. 次の `script` タグ (この場合のプレイヤー統合の最新バージョンは 1.50.0) を含めます。

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

1. `ivs`タイプを使用して、IVS プレイリスト項目をマークします。`setup()`の`cast`値を`null`へ設定します (Chromecast はサポートされていないため)。

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

1. 基盤となる Amazon IVS Player への参照を使用して Amazon IVS Player API を呼び出す場合や、コールバック処理のために Amazon IVS 固有の列挙型への参照が必要な場合は、`'providerPlayer'`イベントへリスナーを追加します。

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

### サンプルコード
<a name="jwplayer-getting-started-code"></a>

この例では、`JW_PLAYER_LIB`は JW Player ライブラリスクリプトへの URL で、`IVS_STREAM`は IVS 再生 URL です。

```
<!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>
```

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

スタンダードの JW Player イベントをリッスンするには、JW Player の[オン](https://docs.jwplayer.com/players/docs/jw8-reference#event-listening-with-the-jwp-api)関数を使用します。

Amazon IVS 固有のイベントをリッスンする、または Amazon IVS Web プレイヤーでイベントリスナーを追加または削除するには、`'providerPlayer'`イベントをリッスンして Amazon IVS Player への参照を取得し、それにイベントリスニングを追加します。例: 

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

`callback` はユーザーの定義するコールバックで、`event` は `PlayerEventType`、`PlayerState`、`ErrorType`のいずれかです。イベントの詳細については、「[Amazon IVS Player SDK: Web Reference](https://aws.github.io/amazon-ivs-player-docs/1.50.0/web/)」を参照してください。

`'providerPlayer'`イベントは JW Player によって発行され、そのイベントで登録したコールバックは、次のフィールドを持つオブジェクトを受け取ります。


| フィールド | 説明 | 
| --- | --- | 
|  `ivsPlayer`  |  基になる Amazon IVS プレイヤーインスタンスを返します。完全な Amazon IVS Player Web API は、このインスタンスから利用できます。ベーシックな JW Player 再生 API を可能な限り使用し、この機能を使用して Amazon IVS 固有の機能へアクセスすることをお勧めします。Amazon IVS プレイヤーインスタンスでアクセスする必要がある最も一般的な機能は、`addEventListener()`および`removeEventListener()`です。  | 
|  `ivsEvents`  |  関連付けられた Amazon IVS 固有の列挙型にマップされた、`PlayerEventType`、`PlayerState`、`ErrorType`フィールドを含むオブジェクトを返します。詳細については、「[Amazon IVS Player SDK: Web Reference](https://aws.github.io/amazon-ivs-player-docs/1.50.0/web/)」を参照してください。  | 

## エラー
<a name="jwplayer-errors"></a>

一般的な JW Player のエラーについては、JW Player の[オン](https://docs.jwplayer.com/players/docs/jw8-reference#event-listening-with-the-jwp-api)関数を使用して、エラーイベントをリッスンしてください。

Amazon IVS 固有のエラーについては、Amazon IVS プレイヤーでその固有のエラーをリッスンします。

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

コールバックは、次のフィールドを持つオブジェクトを受け取ります。


| フィールド | 説明 | 
| --- | --- | 
|  `type`  |  エラータイプ。`ErrorType` イベントに対応しています。詳細については、「[Amazon IVS Player SDK: Web Reference](https://aws.github.io/amazon-ivs-player-docs/1.50.0/web/)」を参照してください。  | 
|  `code`  |  エラーコードです。  | 
|  `source`  |  エラーのソース。  | 
|  `message`  |  人が判読できるエラーメッセージ。  | 

## コンテンツセキュリティポリシー
<a name="jwplayer-content-security-policy"></a>

Amazon IVS プロバイダー API は、コンテンツセキュリティポリシー (CSP: Content Security Policy) を使用するページで動作するように設定されています。[IVS Player SDK: ウェブガイド](web-content-security-policy.md)の「コンテンツセキュリティポリシーの操作」のセクションを参照してください。

## 制限事項
<a name="jwplayer-limitations"></a>

プロバイダーはキャストをサポートしていません。JW Player ダッシュボードでキャストを有効にした場合は、`setup()`を呼び出すときに`cast`～`null`を設定することで無効にできます。これにより、キャストボタンが非表示になります。