PlaybackController 1.0
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.
Capability assertion
A device can implement PlaybackController 1.0 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.
Sample Object
{ "type": "AlexaInterface", "interface": "PlaybackController", "version": "1.0" }
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
This event requires your product to report the status of all client component states to Alexa in the context
object.
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
Send the PauseCommandIssued
event a user presses a button or GUI control to pause playback of a media item. When PauseCommandIssued
is sent, the client must wait until it receives a Stop directive before pausing or stopping the media item locally.
PlaybackStopped
event to Alexa to stop playback with no perceived latency for the user.Sample Message
{ "context": [ // Use an array of context objects that to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "PauseCommandIssued", "messageId": "{{STRING}}" }, "payload": { } } }
Context
This event requires your product to report the status of all client component states to Alexa in the context
object.
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 an end user skips to the next media item in their playback queue using an on-client button press or GUI affordance. The next media item should play when the client receives a Play directive from Alexa.
Sample Message
{ "context": [ // Use an array of context objects that are to communicate the // state of all client components to Alexa. See Context for details. ], "event": { "header": { "namespace": "PlaybackController", "name": "NextCommandIssued", "messageId": "{{STRING}}" }, "payload": { } } }
Context
This event requires your product to report the status of all client component states to Alexa in the context
object.
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
This event requires your product to report the status of all client component states to Alexa in the context
object.
Header Parameters
Parameter | Description | Type |
---|---|---|
messageId | A unique ID used to represent a specific message. | string |
Payload Parameters
An empty payload should be sent.