J'essaie de développer un backend PHP pour ma compétence Alexa. Rien de grand, juste pour apprendre. Ce que je veux faire: Je veux jouer de la musique dès que la compétence commence. J'ai résolu que la manière suivante:AudioPlayer.stop - Alexa backlend avec PHP
if ($RequestMessageType == "LaunchRequest") {
$ReturnValue = '
{
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": null
},
"card": {
"type": "Simple",
"title": "Play Audio",
"content": ""
},
"reprompt": {
"outputSpeech": {
"type": "PlainText",
"text": null
}
},
"directives": [
{
"type": "AudioPlayer.Play",
"playBehavior": "REPLACE_ALL",
"audioItem": {
"stream": {
"token": "33|fdd9052a-717f-414f-a438-1072a64d0f49|831",
"url": "hereismyurl",
"offsetInMilliseconds": 0
}
}
}
],
"shouldEndSession": true
}
}';
}
Cela fonctionne très bien. En dehors de cela, je veux que la Compétence arrête de jouer de la musique si je dis: "Alexa, arrêtez". Cela ne semble pas fonctionner. J'ai essayé ce qui suit:
if ($RequestMessageType == "AMAZON.StopIntent") {
$ReturnValue = '{
"card": {
"type": "Simple",
"title": "Stop Audio",
"content": "Bla bla"
},
"directives": [
{
"type": "AudioPlayer.Stop",
}
],
"shouldEndSession": true
} }';
}
if ($RequestMessageType == "AMAZON.CancelIntent"){
$ReturnValue = '{
"card": {
"type": "Simple",
"title": "Stop Audio",
"content": "Bla bla"
},
"directives": [
{
"type": "AudioPlayer.Stop",
}
],
"shouldEndSession": true
} }';
}
Je reçois toujours une "mauvaise réponse": La compétence a retourné une réponse invalide.
Mon SessionEndedRequest se présente comme suit:
if ($RequestMessageType == "SessionEndedRequest") {
$ReturnValue = '{
"type": "SessionEndedRequest",
"requestId": "$RequestId",
"timestamp": "' . date("c") . '",
"reason": "USER_INITIATED "
}';
}
Est-ce que quelqu'un sait comment arrêter la AudioPlayer la bonne voie?