PlaybackController Interface Reference | Alexa Skills Kit (original) (raw)
Alexa > Documentation > Alexa Skills Kit > Custom Skill Interface Reference > Interfaces >
The PlaybackController
interface provides requests to notify your skill when the user interacts with player controls, such as the buttons on a device, a remote control, or the next and previous tap controls on an Alexa-enabled device with a screen. Your skill can respond to these requests with AudioPlayer directives to start and stop playback.
The PlaybackController
interface has no directives.
PlaybackController requests
PlaybackController
sends the following requests to notify your skill about playback control events:
Request Type | Description |
---|---|
PlaybackController.NextCommandIssued | Sent when the user uses (next) to skip to the next audio item. |
PlaybackController.PauseCommandIssued | Sent when the user uses (pause) to stop playback. |
PlaybackController.PlayCommandIssued | Sent when the user uses (play) to start or resume playback. |
PlaybackController.PreviousCommandIssued | Sent when the user uses (previous) to go back to the previous audio item. |
{
"version": "1.0",
"context": {
"System": {
"application": {},
"user": {},
"device": {}
},
"AudioPlayer": {
"token": "AAAABBBBCCCCCDDDDEEEEEFFFF",
"offsetInMilliseconds": 0,
"playerActivity": "PLAYING"
}
},
"request": {
"type": "PlaybackController.NextCommandIssued",
"requestId": "amzn1.echo-api.request.aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"timestamp": "2018-04-11T15:15:25Z",
"locale": "en-US"
}
}
For the full request format, see [Request Format][service_ref#request-format] in the [JSON Interface Reference for Custom Skills][service_ref].
Note that the Alexa simulator on the Test page of the developer console doesn't support testing PlaybackController
requests.
NextCommandIssued request
Sent when the user uses (next) with the intent to skip to the next audio item.
Example request
{
"type": "PlaybackController.NextCommandIssued",
"requestId": "unique.id.for.the.request",
"timestamp": "timestamp of request in format: 2018-04-11T15:15:25Z",
"locale": "a locale code such as en-US"
}
Request parameters
Parameter | Description | Type |
---|---|---|
type | PlaybackController.NextCommandIssued | String |
requestId | Represents a unique identifier for the specific request. | String |
timestamp | Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to [verify the request when hosting your skill as a web service][hosting-as-web-service#timestamp]. | String |
locale | A string indicating the user's locale. For example: en-US. See [supported locale codes][service_ref#request-locale]. | String |
Response
Your skill can respond to NextCommandIssued
with any AudioPlayer directive.
The response cannot include:
- Any standard properties such as
outputSpeech
,card
, orreprompt
. - Any other directives from other interfaces, such a [Dialog directive][dialog-interface-reference#directives].
PauseCommandIssued request
Sent when the user uses (pause) with the intent to stop playback.
Example request
{
"type": "PlaybackController.PauseCommandIssued",
"requestId": "unique.id.for.the.request",
"timestamp": "timestamp of request in format: 2018-04-11T15:15:25Z",
"locale": "a locale code such as en-US"
}
Request parameters
Parameter | Description | Type |
---|---|---|
type | PlaybackController.PauseCommandIssued | String |
requestId | Represents a unique identifier for the specific request. | String |
timestamp | Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to [verify the request when hosting your skill as a web service][hosting-as-web-service#timestamp]. | String |
locale | A string indicating the user's locale. For example: en-US. See [supported locale codes][service_ref#request-locale]. | String |
Response
Your skill can respond to PauseCommandIssued
with any AudioPlayer directive.
The response cannot include:
- Any standard properties such as
outputSpeech
,card
, orreprompt
. - Any other directives from other interfaces, such a [Dialog directive][dialog-interface-reference#directives].
PlayCommandIssued request
Sent when the user uses (play) to start or resume playback.
{
"type": "PlaybackController.PlayCommandIssued",
"requestId": "unique.id.for.the.request",
"timestamp": "timestamp of request in format: 2018-04-11T15:15:25Z",
"locale": "a locale code such as en-US"
}
Request parameters
Parameter | Description | Type |
---|---|---|
type | PlaybackController.PlayCommandIssued | String |
requestId | Represents a unique identifier for the specific request. | String |
timestamp | Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to [verify the request when hosting your skill as a web service][hosting-as-web-service#timestamp]. | String |
locale | A string indicating the user's locale. For example: en-US. See [supported locale codes][service_ref#request-locale]. | String |
Response
Your skill can respond to PlayCommandIssued
with any AudioPlayer directive.
The response cannot include:
- Any standard properties such as
outputSpeech
,card
, orreprompt
. - Any other directives from other interfaces, such a [Dialog directive][dialog-interface-reference#directives].
PreviousCommandIssued request
Sent when the user uses (previous) with the intent to go back to the previous audio item.
Example request
{
"type": "PlaybackController.PreviousCommandIssued",
"requestId": "unique.id.for.the.request",
"timestamp": "timestamp of request in format: 2018-04-11T15:15:25Z",
"locale": "a locale code such as en-US"
}
Request parameters
Parameter | Description | Type |
---|---|---|
type | PlaybackController.PreviousCommandIssued | String |
requestId | Represents a unique identifier for the specific request. | String |
timestamp | Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to [verify the request when hosting your skill as a web service][hosting-as-web-service#timestamp]. | String |
locale | A string indicating the user's locale. For example: en-US. See [supported locale codes][service_ref#request-locale]. | String |
Response
Your skill can respond to PreviousCommandIssued
with any AudioPlayer directive.
The response cannot include:
- Any standard properties such as
outputSpeech
,card
, orreprompt
. - Any other directives from other interfaces, such a [Dialog directive][dialog-interface-reference#directives].
System.ExceptionEncountered request
If a response to a PlaybackController
request causes an error, Alexa sends your skill a System.ExceptionEncountered
request. Alexa ignores any directives included in the response to this request.
Example request
{
"type": "System.ExceptionEncountered",
"requestId": "unique.id.for.the.request",
"timestamp": "timestamp of request in format: 2018-04-11T15:15:25Z",
"locale": "a locale code such as en-US",
"error": {
"type": "error code such as INVALID_RESPONSE",
"message": "description of the error that occurred"
},
"cause": {
"requestId": "unique identifier for the request that caused the error"
}
}
Request parameters
Parameter | Description | Type |
---|---|---|
type | System.ExceptionEncountered | string |
requestId | Represents a unique identifier for the specific request. | string |
timestamp | Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to [verify the request when hosting your skill as a web service][hosting-as-web-service#timestamp]. | string |
locale | A string indicating the user's locale. For example: en-US. See [supported locale codes][service_ref#request-locale]. | string |
error | Contains an object with error information | object |
error.type | Identifies the specific type of error (INVALID_RESPONSE, DEVICE_COMMUNICATION_ERROR, INTERNAL_ERROR). | string |
error.message | A description of the error the device has encountered. | string |
cause.requestId | The requestId for the request that caused the error | string |
Response
Your skill can't return a response to System.ExceptionEncountered
request.
Was this page helpful?
Last updated: Nov 28, 2023