Alexa.PlaybackControllerインターフェース
ユーザーがトランスポートコントロールの発話(停止、早戻し、再生など)を行うと、Alexa.PlaybackController
インターフェースはトランスポートコントロールディレクティブ(Pause
、Play
、Stop
、Resume
、Next
、Previous
、FastForward
、Rewind
、StartOver
)を送信して、メディアコントロールのアクションを指示します。
PlaybackController
を使用するのではなく、Android MediaSessionを使用することをお勧めします。Media Sessionは、より低レイテンシで一貫性のあるユーザーエクスペリエンスを実現しながら、同じ機能を提供します。詳細については、手順2: MediaSessionと統合するを参照してください。- トランスポートコントロールディレクティブの発話
- PlaybackControllerディレクティブの処理
- リクエストの例
- エクスペリエンスタイプ
- PlaybackControllerディレクティブの処理
- レスポンスの例
- インターフェース機能に対するサポートの宣言
トランスポートコントロールディレクティブの発話
ユーザーが以下の発話を行うと、Alexaはトランスポートコントロールディレクティブをアプリ(アプリのみの統合の場合)またはLambda(クラウド側の統合の場合)に送信します。
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pause |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
Play |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
stop |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
Resume |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
Start over |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
Fast Forward |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
Rewind |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
Previous |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
Next |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pause / mets sur pause |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
joue |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
arrête / stop / stoppe |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
Not supported |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
recommence |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
avance fast forward |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
rewind rembobine |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
précédent(e) |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
prochain(e) suivant(e) next |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pause / mets sur pause |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
joue |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
arrête / stop / stoppe |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
Not supported |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
recommence |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
avance |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
rembobine |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
précédent(e) |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
prochain(e) suivant(e) next |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pause pausier [DeviceLocation] pausier auf? [DeviceType] pause auf? [DeviceLocation]? [DeviceBrand] pausier [AppName] pausier überall |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
spiel auf? [DeviceBrand] spiel auch? auf [DeviceType] [DeviceBrand]? spiel hier auch spiel etwas anderes |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
stopp halt an hör auf stopp [DeviceLocation] stopp [DeviceBrand] stopp [DeviceType] stoppe auf dem [DeviceLocation] [DeviceBrand] |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
fortsetzen das fortsetzen |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
neu starten spiel vom anfang start von vorn von anfang an abspielen von vorne auf [DeviceBrand] abspielen beginne erneut noch mal von vorne noch einmal beginnen |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
spul vor spul auf? [AppName] vor |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
spul zurück spul [AppName] zurück spul auf? [DeviceBrand] zurück spul [DeviceBrand] [Duration] zurück |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
vorherige vorheriges zurück eins zurück geh zurück geh zum vorherigen vorheriges auf dem [DeviceLocation]? [DeviceBrand] spring/geh zurück/nach hinten auf [AppName] vorheriges auf [DeviceLocation] [DeviceType] vorheriges video/kanal auf [DeviceLocation] [DeviceType] überall vorheriges auf allen [DeviceType] vorheriges |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
nächste nächstes das nächste spring/geh vor spring/geh vorwärts vor überspring das eins weiter/vorwärts weiter spring nach vorn spring nach vorn auf [AppName]/[DeviceBrand] nächstes im [DeviceLocation] nächstes auf [DeviceLocation]? [DeviceType]/[DeviceBrand] gib mir das nächste von [AppName] nächstes auf allen [DeviceType] |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pause रोको एक second रुक जाओ एक second wait करना एक second pause हो जाओ ठहरना ज़रा थम जा freeze[Anaphor] को रोक दो[AppName] को pause कर दो मेरे [DeviceLocation] [Device] को pause करना मेरे [DeviceLocation] [DeviceType] को pause करना[DeviceLocation] पे/पर Device को रोक दो ज़रा |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
[SportsTeam] का [Event] लगा/चला दो [ActiveUserTrigger] [DeviceBrand] पर लगाओ/चलाओ [Country] में जो [SortType] है लगाओ/चलाओ [Country] से [Date] के [SortType] लगा/बजा देना [Anaphor] [Device] पर बजाएँ/लगाएँ [ListPosition] [Anaphor] लगा/बजा दीजिये [Country] के [City] में [SortType] है बजाओ/लगाओ [League] [Event] लगा/बजा दीजिये [Anaphor] play करो [ActiveUserTrigger] [Date] ही के [SortType] बजाओ [SportsTeam] versus [SportsTeamOpponent] का Event लगा दे [League] [Event] का [Version] चलाओ [Anaphor] [ActiveUserTrigger] [Device] पर लगा दो [ListPosition] बजा दो [Sport] [Event] लगाइए/बजाइए [Date] [Anaphor] play करो [DeviceLocation] पे [DeviceBrand] बजाओ/लगाओ |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
चुप हो जाओ/बस कर/quiet/चुप/शांत/शांति/shush/मुँह बंद करो stop [Anaphor] बंद करो/रोको [Anaphor] [Anaphor] stop/बंद करो/रोको [Anaphor] [MediaType] बंद करना stop [AppName] [AppName] बंद stop [Device] [Device] रोको stop [LocationNonSpecificQuantity] [LocationNonSpecificQuantity] stop/रोको stop [DeviceLocation] [DeviceLocation] stop/रोको stop [MediaType] [MediaType] stop/रोको |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
जारी रखो resume करो |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
फिर से चलाओ फिर से शुरू करो |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
[AppName] पर थोड़ा आगे कर दो[AppName] में fast forward करें[Anaphor] आगे/forward करनाfast forward करो[Anaphor] आगे करना ज़रा[Anaphor] वाले को आगे बढ़ाओ |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
थोड़ा reverse/rewind/पीछे करोrewind[AppName] को rewind करो[Anaphor] reverse/rewind/पीछे करो[DeviceLocation] के [Device] को rewind करना |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
previous/पीछे/पिछला/पिछलीprevious/पीछे/पिछला/पिछली वाली recipe [VisualModeTrigger][Anaphor] वापस जाओprevious/पीछे/पिछला/पिछली [Anaphor] पर वापिस जाओ पिछला वाला [Episode][Anaphor] पहला वाला [Episode] पर जानाprevious [LocationNonSpecificQuantity][LocationNonSpecificQuantity] previous/पीछे/पिछला/पिछली वाला लगाओ[DeviceBrand] पे पिछलाprevious/पीछे/पिछला/पिछली वाला [DeviceBrand][Anaphor] [DeviceBrand] पर previous/पीछे/पिछला/पिछली वाला[DeviceLocation] के [DeviceBrand] पर पिछला वाला[AppName] में पिछली वाली पर वापस जाओprevious/पीछे/पिछला/पिछली वाला [AppName] पर जा[ActiveUserTrigger] [Quantifier] [DeviceType] में पीछे जाओ पिछला [MediaType] play करो |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
[GroupDeviceBrand] [HomeAutomationType] पर अगला लगाओ[GroupDeviceBrand] पर अगला लगाओ[GroupDeviceBrand] वाले [HomeAutomationType] पर अगला चलाना[AppName] पर इसके बाद वाला दो[AppName] पर मुझे next वाला दे देनाnext recipe अगली recipe[DeviceLocation] पर इसके बाद वाला दो[LocationNonSpecificQuantity] अगला चलाओ अगला/next [Episode] play करो[DeviceLocation] पर DeviceBrand अगला वाला दो |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
metti in pausa / voglio mettere in pausa / posso mettere in pausa |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
riproduci /metti / fai partire
|
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
stop / ferma / spegni / smetti / basta / stoppa |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
riprendi |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
ricomincia |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
manda avanti / vai avanti / avanti veloce |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
vai indietro / mandalo indietro / indietro veloce / torna indietro |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
ritorna al precedente / vai indietro di uno / precedente / torna indietro / indietro |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
prossima / seguente / avanti / salta / successivo |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
ポーズ 一旦停止 一旦止めて[Anaphor]で一時停止[AppName]を一旦停止[DeviceLocation]の[DeviceBrand]をポーズして[DeviceLocation]の[DeviceType]を一時停止[DeviceBrand]をポーズして[DeviceType]を一旦停止して |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
[SportsTeam]の[Event]を再生して[Country]で[SortType]のやつかけて[Country]で[Date][SortType]のやつ流して[ListPosition]の[Anaphor]再生[Country]の[City]で[SortType]のやつストリームして[City]で[SortType]のやつ再生して[League]の[Event]かけて[MediaPlayer]で[AppName]を再生して[ActiveUserTrigger][SortType]を再生して[SportsTeam]対[SportsTeamOpponent]の[Event]をかけて[Version]の[League]の[Event]をストリームして[Sport]の[Event]を再生して[ActiveUserTrigger][DeviceBrand]でストリームして[DeviceBrand]でかけて[DeviceLocation]の[DeviceBrand]で流して |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
ストップ/して とめて 停止して もういい もういいや もういいよ もういいです 黙れ 中止 中止して 終了/して/[Quantifier]止めて[DeviceLocation]での再生を止めて[DeviceLocation]の[DeviceBrand]での再生をストップ[DeviceBrand]の再生止めて[DeviceType]をとめて[AppName]を終了[Anaphor]止めて |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
再開して |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
最初から始めて |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
[AppName]早送り[MediaType]を早送りして |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
巻き戻して [AppName]巻き戻して[MediaType]巻き戻し [DeviceLocation]の[DeviceType]巻き戻し |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
|
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
次 スキップ 次に行って[DeviceLocation]で次に行って[DeviceLocation]の[DeviceBrand]で次に行って[LocationNonSpecificQuantity]で次を再生[Episode]を再生して[VideoName]の[Episode]を再生[DeviceBrand]で再生 |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pausar/interromper |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
tocar/assistir/reproduzir
|
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
parar |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
continuar/ continue/continua |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
começar/começa/comece de novo |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
avançar/ ir para frente |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
voltar/retroceder/rebobinar |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
|
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
próximo/próxima |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
機能 | サンプル発話 | 想定されるレスポンス |
---|---|---|
一時停止 認定に必須 |
pausa |
ウェブプレーヤーやリモコンで一時停止ボタンを押した場合と同様に、メディアが一時停止されます。 |
再生 認定に必須 |
pon reproduce |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアが再生されます。 |
停止 認定に必須 |
para |
ウェブプレーヤーやリモコンで停止ボタンを押した場合と同様に、メディアが停止されます。 |
再開 認定に必須 |
continúa |
ウェブプレーヤーやリモコンで再生ボタンを押した場合と同様に、メディアの再生が再開されます。 |
最初から再生 認定に必須 |
empieza de nuevo vuelve a empezar comienza de nuevo vuelve a iniciar vuelve a comenzar |
シーク位置がメディアの先頭に戻り、メディアが最初から再生されます。 |
早送り 認定に必須 |
adelanta |
メディアが10秒早送りされます。 |
早戻し 認定に必須 |
rebobina |
メディアが10秒早戻しされます。 |
前へ 認定に必須 |
anterior |
前のエピソードが再生されます。それができない場合は、現在のプレイリスト内で前のエピソードに移動します。 |
次へ 認定に必須 |
siguiente salta muestra el siguiente siguiente en el sonos próxima en el jardín |
次のエピソードが再生されます。それができない場合は、現在のプレイリスト内で次のエピソードに移動します。 |
ほかのディレクティブの場合と同様に、Discover
ディレクティブを受信したら、ビデオスキルでサポートしているPlaybackController
機能を指定する必要があります。
PlaybackControllerディレクティブの処理
PlaybackController
インターフェースから送信されるディレクティブには、いくつかのタイプがあります。それぞれについて以下の各セクションで説明します。
リクエストの例
EXTRA_DIRECTIVE_NAMESPACE: Alexa.PlaybackController
EXTRA_DIRECTIVE_NAME: <トランスポートコントロールコマンド>
EXTRA_DIRECTIVE_PAYLOAD_VERSION: 3
EXTRA_DIRECTIVE_PAYLOAD: payload
payload
にはオプションのフィールドが1つ含まれます。
"payload": {
"experience": {
"mode": "VOICE_OPTIMIZED",
}
}
<トランスポートコントロールコマンド>の値は以下のいずれかになります。
pause
play
stop
resume
rewind
fastForward
previous
next
startOver
payload
には空のオブジェクト({}
)が格納されます。
{
"directive": {
"header": {
"namespace": "Alexa.PlaybackController",
"name": "<トランスポートコントロールコマンド>",
"messageId": "abc-123-def-456",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
},
"endpointId": "VSKTV",
"cookie": {
}
},
"payload": {
"experience": {
"mode": "VOICE_OPTIMIZED",
}
}
}
}
<トランスポートコントロールコマンド>
の値は以下のいずれかになります。
pause
play
stop
resume
rewind
fastForward
previous
next
startOver
payload
には空のオブジェクト({}
)が格納されます。
エクスペリエンスタイプ
ペイロードには、オプションのフィールドとして、experience
オブジェクトが含まれます。experience
オブジェクトを使用すると、検索に使用されたデバイスに基づいて、検索結果の表示を最適化できます。たとえば、ユーザーがFire TVリモコンを使用して検索した場合、ユーザーはリモコンを使用して結果を閲覧できるため、experience
オブジェクトによって多数の検索結果が表示されます。一方、Fire TVとペアリングされたEchoを使用して検索リクエストが行われた場合は、experience
オブジェクトによって表示される結果の数と表示方法が制限され、ユーザーはリモコンを使用せずに結果を確認できます。
experience
オブジェクトは、検索結果の表示方法を決定するmode
オブジェクトで構成されています。mode
オブジェクトは、 VOICE_OPTIMIZED
とDEFAULT
の2つの値を取ります。
-
VOICE_OPTIMIZED
: 音声専用デバイス向けに最適化された表示方法です。リモコンを使用せずに音声で操作できる検索結果のリストが表示されます。 -
DEFAULT
: 検索に使用されたデバイスに関係なく、すべての検索結果をリスト形式で表示する、デフォルトの表示方法です。
上位互換性を確保するため、mode
で不明な値を受け取った場合は、失敗とするのではなく、DEFAULT
にフォールバックするようにしてください。
PlaybackControllerディレクティブの処理
PlaybackController
ディレクティブには、メディアの再生中に使用されるトランスポートコントロールコマンドが含まれています。アクションの多くは、ユーザーがリモコンの同等のボタンを押したときに実行されるアクションと同様です。以下のセクションでは、さまざまなPlaybackController
ディレクティブの処理に関して想定されるガイダンスを提供します。
Pauseディレクティブ
pause
では、ユーザーがリモコンの「一時停止」ボタンを押したときと同じアクションを実行する必要があります。
Playディレクティブ
play
では、ユーザーがリモコンの「再生」ボタンを押したときと同じアクションを実行する必要があります。
Stopディレクティブ
stop
では、オーディオまたはビデオコンテンツの再生を停止するようリクエストする必要があります。
Resumeディレクティブ
resume
では、ユーザーがリモコンで再生の一時停止を解除した場合(つまり、再生が既に一時停止されている状態で「再生」ボタンを押した場合)と同じアクションを実行する必要があります。
Nextディレクティブ
next
では、次のエピソードに移る必要があります。できない場合は、開発者が選択した次の関連ビデオコンテンツ(または開発者が選択したプレイリストの次の項目)をユーザーに表示する必要があります。
Previousディレクティブ
previous
では、前のエピソードに移る必要があります。できない場合は、開発者が選択したプレイリストの前の項目をユーザーに表示する必要があります。
FastForwardディレクティブ
fastForward
では、再生を30秒早送りする必要があります。早送り時の画面表示は、リモコンで早送りするときのようにカーソルがゆっくりと動く画面にはしないでください。また、ユーザーが音声で早送りをリクエストした後、「アレクサ、再生して」と言う必要がないようにしてください。ユーザーがこのコマンドを使用した場合、30秒早送りして自動的に再生が再開されることがユーザーにとって好ましい動作です。さらに早送りしたい場合は、SeekControllerディレクティブを使用できます。
Rewindディレクティブ
rewind
では、再生を30秒早戻しする必要があります。早戻し時の画面表示は、リモコンで早戻しするときのようにカーソルがゆっくりと動く画面にはしないでください。また、ユーザーが音声で早戻しをリクエストした後、「アレクサ、再生して」と言う必要がないようにしてください。ユーザーがこのコマンドを使用した場合、30秒早戻しして自動的に再生が再開されることがユーザーにとって好ましい動作です。さらに早戻しする場合は、SeekControllerディレクティブを使用できます。
StartOverディレクティブ
startOver
では、オーディオまたはビジュアルコンテンツの最初から再生を開始する必要があります。
レスポンスの例
アプリでディレクティブが正常に処理された場合、BroadcastReceiverクラスは、次のように、成功ステータスを含む成功のインテントを返送します。
if (response != null && sendResponse) {
Intent success = new Intent().putExtra(VSKIntentConstants.EXTRA_DIRECTIVE_STATUS, didSucceed);
try {
response.send(context, 0, success);
} catch(PendingIntent.CanceledException e) {
// 応答に時間がかかりすぎているため、ログにエラーを出力します
}
}
詳細については、手順7: BroadcastReceiverを追加するを参照してください。また、具体的なコードの例については、サンプルアプリのAlexaDirectiveReceiver
クラスを参照してください。
PlaybackController
インターフェースからトランスポートコントロールディレクティブを受信したら、Alexaにレスポンスを送り返します。
{
"context": {
"properties": []
},
"event": {
"header": {
"messageId": "abc-123-def-456",
"namespace": "Alexa",
"name": "Response",
"payloadVersion": "3"
},
"endpoint":{
"endpointId":"VSKTV"
},
"payload":{ }
}
}
何らかの理由でユーザーのリクエストを完了できない場合は、エラーレスポンスを返す必要があります。詳細については、エラー処理を参照してください。
インターフェース機能に対するサポートの宣言
アプリでPlaybackController
を受け取るには、機能を宣言する際にこのインターフェースのサポートを明示する必要があります。アプリのみの統合での機能の宣言の詳細については、以下を参照してください。
AlexaからLambdaにPlaybackController
ディレクティブが送信されるようにするには、Alexa.Discovery
インターフェースを介して送信されたDiscover
ディレクティブへのレスポンスで、そのサポートを明示する必要があります。詳細については、Discoveryインターフェース
を参照してください。