APLメディアコマンド

APLメディアコマンド

これらのコマンドを使うと、Alexaを搭載した画面デバイスでメディアを再生できます。

コマンドの動作の概要については、APLコマンドを参照してください。その他のコマンドについては、APL標準コマンドを参照してください。

PlayMedia

ビデオプレイヤーでメディアを再生します。

PlayMediaコマンドには、標準的なコマンドプロパティに加えて以下のプロパティがあります。

プロパティ デフォルト 説明
audioTrack backgroundforegroundnone foreground 再生するオーディオトラックです。デフォルトはforegroundです。
componentId 文字列 SELF コンポーネントを再生しているメディアの名前です。
source URLまたはソース配列 必須 メディアのソースです。

既にコンテンツを再生しているプレイヤーでPlayMediaコマンドを実行すると、再生中のコンテンツが停止し、すべての既存のソースデータが消去され、新しく取り込まれたソースデータに置き換えられます。このメディアコンテンツは自動的に取り込まれ、再生が始まります。

PlayMediaコマンドの有効期間は、audioTrackで設定します。audioTrackが「foreground」に設定されていると、メディアが再生されている間はPlayMediaコマンドが有効です。audioTrackが「background」または「none」に設定されていると、PlayMediaコマンドは直ちに制御を返します。たとえば、メディアトラックに続けて音声を読み上げるには、次のように記述します。

{
  "type": "Sequential",
  "items": [
    {
      "type": "PlayMedia",
      "componentId": "myAudioPlayer"
      "source": "http://music.amazon.com/s3/MAGIC_TRACK_HERE",
      "audioTrack": "foreground"
    },
    {
      "type": "SpeakItem",
      "componentId": "mySpokenItem"
    }
  ]
}

上記の場合、SpeakItemコマンドは、メディアトラックの再生が終了した後に実行されます。audioTrackが「background」に設定されている場合、SpeakItemコマンドは、メディアトラックの再生が開始した直後に実行されます。PlayMediaコマンドを早期停止(ユーザーが画面をタッチしたり、Alexaから新しいコマンドを受け取ったりするなど)するアクションは、audioTrackが「foreground」に設定されている場合にのみビデオの再生を停止します。audioTrackが「background」の場合、PlayMediaコマンドは既に終了しているため、何も停止しません。

PlayMediaコマンドは、高速モードでは無視されます。

audioTrack

VideoコンポーネントにあるaudioTrackプロパティを参照してください。

componentId

MediaコンポーネントのIDです。省略された場合は、現在のコンポーネントが使用されます。

source

sourceプロパティの定義については、Videoを参照してください。

ControlMedia

メディアプレイヤーの再生、停止、トラックの変更、その他よく使われるアクションの操作を行います。

ControlMediaコマンドには、標準のコマンドプロパティに加えて以下のプロパティがあります。

プロパティ デフォルト 説明
command playpauserewind、… 必須 メディアプレイヤーで使うコマンドです。
componentId 文字列 SELF コンポーネントを再生しているメディアの名前です。
value 整数 0 任意のデータ値です。

次に例を示します:

{
    "type": "ControlMedia",
    "componentId": "myAudioPlayer",
    "command": "next"
}

ControlMediaコマンドは、高速モードでのほとんどの操作をサポートしています。例外は、playサブコマンドです。

command

command列挙値は、メディアプレイヤーで実行される操作です。利用可能なコマンドは次のとおりです。

プロパティ 再生状態/一時停止状態 高速モード 説明
play 再生中 なし メディアを再生します。
pause 一時停止 なし メディア再生を停止します。
next 一時停止 なし ソース配列で次のメディアトラックを開きます。
previous 一時停止 なし ソース配列で前のメディアトラックを開きます。
rewind 一時停止 なし 再生中のメディアトラックを最初まで早戻しします。
seek 一時停止 相対オフセット(ミリ秒) メディアの再生位置を相殺します。
setTrack 一時停止 トラックインデックス ソース配列の現在のトラックを変更します。

play

現在のメディアトラックと位置からの再生を開始します。このコマンドは、ビデオトラックの現在のリピートカウンターには影響しません。ビデオが再生されていない場合は、onPlayイベントが生成されます。次に例を示します:

{
  "type": "ControlMedia",
  "componentId": "myAudioPlayer",
  "command": "play"
}

pause

ビデオ再生を停止します。ビデオが現在再生中の場合は、onPauseイベントが生成されます。次に例を示します:

{
  "type": "ControlMedia",
  "componentId": "myAudioPlayer",
  "command": "pause"
}

next

ビデオ再生を停止して、次のビデオトラックの先頭に進みます。リピートカウンターは、新しいビデオトラックにも適用されます(たとえば、ビデオトラックが2回繰り返すように設定されている場合、再生を実行するコマンドを発行すると新しいビデオトラックを合計で3回繰り返すことになります)。ビデオプレイヤーが既に最後のビデオトラックである場合、ビデオのシーク位置は最後のビデオトラックに移動し、リピートカウンターはゼロになります。

次に例を示します:

{
  "type": "ControlMedia",
  "componentId": "myAudioPlayer",
  "command": "next"
}

このコマンドの呼び出し後、ビデオ再生は自動開始されません。ビデオ再生を開始するには、明示的にplayコマンドを開始する必要があります。

previous

ビデオ再生を停止して、前のビデオトラックの先頭に進みます。リピートカウンターは、新しいビデオトラックにも適用されます(たとえば、ビデオトラックが2回繰り返すように設定されている場合、再生を実行するコマンドを発行すると新しいビデオトラックを合計で3回繰り返すことになります)。ビデオプレイヤーが最初のビデオトラックである場合、ビデオのシーク位置は最初のビデオトラックの先頭に移動し、リピートカウンターはリロードされます。

次に例を示します:

{
  "type": "ControlMedia",
  "componentId": "myAudioPlayer",
  "command": "previous"
}

rewind

ビデオ再生を一時停止して、現在のビデオトラックをリロードします。新しいビデオトラックのリピートカウンターはリロードされます。

次に例を示します:

{
  "type": "ControlMedia",
  "componentId": "myAudioPlayer",
  "command": "rewind"
}

このコマンドの呼び出し後、ビデオ再生は自動開始されません。ビデオ再生を開始するには、明示的にplayコマンドを開始する必要があります。

seek

ビデオの再生を一時停止し、プレイヤーの再生位置に相対的な変更を適用します。この変更は、プレイヤーの現在位置に相対的で、現在のトラックの有効な範囲に合わせて切り取られます。

たとえば、切り取られたビデオトラックを考えてみましょう。

{
  "type": "Video",
  "id": "MyVideoPlayer",
  "source": {
    "url": "http://example.com/example.mp4",
    "offset": 500,
    "duration": 1000
  }
}

プレイヤーの現在位置が700ミリ秒だとします。次のコマンドを実行します。

{
  "type": "ControlMedia",
  "componentId": "MyVideoPlayer",
  "command": "seek",
  "value": 500
}

コマンドは再生を一時停止し、プレイヤーの再生位置を1200ミリ秒(700+500)に移動します。同じコマンドをもう一度実行すると、ソースの定義で再生位置が500~1500ミリ秒の間に限定されているため、プレイヤーの再生位置は1500ミリ秒に移動します。

seekコマンドは、現在のビデオトラックのリピートカウンターを変更しません。seekコマンドの実行後、ビデオ再生は自動開始されません。ビデオ再生を開始するには、playコマンドを明示的に実行する必要があります。

setTrack

ビデオ再生を停止して、現在のトラックを変更します。指定の0から始まるトラックインデックスを、コマンドデータオブジェクトに渡す必要があります。このインデックスは、ソース配列内の有効なインデックスである必要があり、有効でない場合はコマンドは無視されます。トラックを変更しない場合でも、トラックのリピートカウンタはリロードされます。

次に例を示します:

{
  "type": "ControlMedia",
  "componentId": "myAudioPlayer",
  "command": "setTrack",
  "value": 2
}

このコマンドの呼び出し後、ビデオ再生は自動開始されません。ビデオ再生を開始するには、明示的にplayコマンドを開始する必要があります。

componentId

MediaコンポーネントのIDです。省略された場合は、現在のコンポーネントが使用されます。

value

コマンドに設定する値です。seekコマンドとsetTrackコマンドに使用されます。