# インターフェース

# シーケンス

ULIZA Google Cast Receiverの処理シーケンスは以下の通りです。

sequenceDiagram actor User participant sender as ULIZA Player participant receiver as ULIZA Google Receiver participant other as コンテンツ配信サーバー User->>sender: Google Castデバイス選択 sender->>receiver: 起動 sender->>receiver: Receiver設定情報送信 receiver->>other: 起動画面画像取得 Note over receiver: 起動画面 receiver->>other: スライドショー画像取得 Note over receiver: スライドショー画面 User->>sender: 再生 sender->>receiver: Cast開始 receiver->>other: メディアデータ取得 Note over receiver: プレイヤー画面 receiver->>sender: 状態通知 Note over sender: Castコントローラー画面 sender->>receiver: 各種操作 receiver->>receiver: 再生完了 Note over receiver: スライドショー画面

# フォーマット

# Receiver設定情報

Receiver設定情報を送信する際のフォーマットは以下の通りです。

ui: JSON Object【必須】
Receiver設定情報です。
splashImage: 文字列(URL)
スプラッシュ画像のURLです。
ULIZA Google Cast Receiverの起動画面に表示する画像です。画像フォーマットはPNG/JPEGをサポートします。
slideshowImages: 文字列(URL)の配列
スライドショー画像のURLのリストです。
ULIZA Google Cast Receiverがコンテンツを再生していない時に表示する画像です。画像フォーマットはPNG/JPEGをサポートします。
slideshowIntervalDuration: 文字列(時間)
スライドショー画像の切替間隔です。
progressColor: 文字列(RGBA)
進捗バーの色です。

Receiver設定情報サンプル

{
  "ui": {
    "splashImage": "https://aka-gcast01.uliza.jp/uliza_google_cast_receiver/assets/img/ulizagooglecast.jpg",
    "slideshowImages": [
      "https://aka-gcast01.uliza.jp/uliza_google_cast_receiver/assets/img/samplescreen1.jpg",
      "https://aka-gcast01.uliza.jp/uliza_google_cast_receiver/assets/img/samplescreen2.jpg",
      "https://aka-gcast01.uliza.jp/uliza_google_cast_receiver/assets/img/samplescreen3.jpg",
      "https://aka-gcast01.uliza.jp/uliza_google_cast_receiver/assets/img/samplescreen4.jpg"
    ],
    "slideshowIntervalDuration": "10000ms",
    "progressColor": "rgba(255,170,17,1)",
  }
}

# Cast情報

Cast開始時に送信する情報のフォーマットは以下の通りです。

query: JSON Object
Cast開始時に送信する情報です。
title: 文字列
Castするコンテンツのタイトル
url: 文字列【必須】
CastするコンテンツのURL
streamType: 文字列【必須】
Castするコンテンツのストリームの種別
'vod': VODコンテンツ
'live': Liveコンテンツ
mediaProtocol: 文字列
Castするコンテンツの配信フォーマットの種別
HLSのみをサポートします。
'hls'
manifestRequest: JSON Object
マニフェストをリクエストする際のオプション(requestOptionsを参照)
HLSの場合、マニフェストはプレイリスト(.m3u8)を指します。
licenseRequest: JSON Object
ライセンスをリクエストする際のオプション(requestOptionsを参照)
HLSの場合、ライセンスは復号鍵を指します。
thumb: 文字列【必須】
サムネイルのURL
画像フォーマットはPNG/JPEGをサポートします。
artwork: 文字列の配列【必須】
Cast中に表示する画像のURL
画像フォーマットはPNG/JPEGをサポートします。ひとつ以上のURLを設定してください。

# requestOptions

query: JSON Object
リクエスト送信時のクエリ(複数指定可能)
"key": "value" 形式としてください。key及びvalueはURLエンコードしてください。keyが重複する場合、最後に現れるvalueを使用します(後勝ち)。
headers: JSON Object
リクエスト送信時のヘッダ(複数指定可能)
"key": "value" 形式としてください。keyが重複する場合、最後に現れるvalueを使用します(後勝ち)。
credentials: 真偽値
Cookie使用フラグ
true: Cookieを使用する
false: Cookieを使用しない
デフォルト値: false

Cast情報サンプル

{
  "videos": [
    {
      "title": "Caminandes",
      "url": "https://cdn.example.com/cast/movie/Caminandes_1280.m3u8",
      "streamType": "vod",
      "mediaProtocol": "hls",
      "thumb": "https://cms.example.com/cast/images/Caminandes_thumb.jpg",
      "artwork": [
        "https://cms.example.com/cast/images/Caminandes_poster.jpg"
      ]
    }
  ]
}