PlaybackController 1.1
The PlaybackController interface of the Alexa Voice Service (AVS) exposes a series of events for navigating a playback queue with an on-client button press or GUI control, rather than through a speech request.
Version changes
- The
ButtonCommandIssued
andToggleCommandIssued
events are available for use in v1.1 of the PlaybackController interface.
Capability assertion
A device can implement PlaybackController 1.1 on its own behalf, but not on behalf of any connected endpoints.
New AVS integrations must assert support through Alexa.Discovery, but AVS continues support for legacy integrations through the Capabilities API.
{ "interface": "PlaybackController", "type": "AlexaInterface", "version": "1.1" }
Events
PlayCommandIssued
The PlayCommandIssued
event must be sent when a user starts/resumes playback of a media item using an on-client button press or GUI affordance.
Sample message
{ "context": [ // Use an array of context objects to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "PlayCommandIssued", "messageId": "{{STRING}}" }, "payload": { } } }
Context
The PlayCommandIssued
event requires the client to send the status of all client component states to Alexa. See Context.
Header parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload parameters
An empty payload should be sent.
PauseCommandIssued
The PauseCommandIssued
event must be sent when a user pauses the playback of a media item using an on-client button press or GUI affordance.
Sample message
{ "context": [ // Use an array of context objects to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "PauseCommandIssued", "messageId": "{{STRING}}" }, "payload": { } } }
Context
The PauseCommandIssued
event requires the client to send the status of all client component states to Alexa. See Context.
Header parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload parameters
An empty payload should be sent.
NextCommandIssued
The NextCommandIssued
event must be sent when a user skips to the next media item in their playback queue using an on-client button press or GUI affordance.
Sample message
{ "context": [ // Use an array of context objects to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "NextCommandIssued", "messageId": "{{STRING}}" }, "payload": { } } }
Context
The NextCommandIssued
event requires the client to send the status of all client component states to Alexa. See Context.
Header parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload parameters
An empty payload should be sent.
PreviousCommandIssued
The PreviousCommandIssued
event must be sent when a user skips to the previous media item in their playback queue using an on-client button press or GUI affordance.
Sample message
{ "context": [ // Use an array of context objects to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "PreviousCommandIssued", "messageId": "{{STRING}}" }, "payload": { } } }
Context
The PreviousCommandIssued
event requires the client to send the status of all client component states to Alexa. See Context.
Header parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload parameters
An empty payload should be sent.
ButtonCommandIssued
Use the ButtonCommandIssued
event to notify Alexa when a user presses a button on the device or GUI, such as skip forward or skip backward. Use the provider or Alexa skill to determine skip duration. Each ButtonCommandIssued
event is additive. For example, a scenario where each button press skips forward playback by 30 seconds. If a user presses the skip forward button three times in a row and sends three ButtonCommandIssued
events to Alexa, the additive effect is to skip forward a total of 90 seconds.
Sample message
{ "context": [ // Use an array of context objects to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "ButtonCommandIssued", "messageId": "{{STRING}}" }, "payload": { "name": "{{STRING}}" } } }
Context
The ButtonCommandIssued
event requires the client to send the status of all client component states to Alexa. See Context.
Header parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload parameters
Parameter | Description | Type |
---|---|---|
name | Specifies the command triggered by an on-client button press or GUI affordance. Accepted values: SKIPFORWARD , SKIPBACKWARD . |
string |
ToggleCommandIssued
Use the ToggleCommandIssued
event to notify Alexa that a user has selected or de-selected an option or feature using an on-client button press or GUI control. Supported options include: shuffle, loop, repeat, thumbs up, and thumbs down.
Sample message
{ "context": [ // Use an array of context objects to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "ToggleCommandIssued", "messageId": "{{STRING}}" }, "payload": { "name": "{{STRING}}" "action": "{{STRING}}" } } }
Context
The ToggleCommandIssued
event requires the client to send the status of all client component states to Alexa. See Context.
Header parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload parameters
Parameter | Description | Type |
---|---|---|
name | Specifies the option/feature that a user toggles by an on-client button press or GUI control. Accepted values: SHUFFLE , LOOP , REPEAT , THUMBSUP , THUMBSDOWN . |
string |
action | Indicates if the toggle has been selected or deselected. Accepted values: SELECT , DESELECT . |
string |
Last updated: Oct 07, 2021