AudioPlayer.stop-Alexa backlend与PHP
我正试图为我的Alexa技能开发一个PHP后端。没什么大不了的,只是为了学习 我想做的是: 我想在技能一开始就演奏一些音乐。我用以下方法解决了这个问题:AudioPlayer.stop-Alexa backlend与PHP,php,alexa,alexa-skills-kit,alexa-skill,alexa-voice-service,Php,Alexa,Alexa Skills Kit,Alexa Skill,Alexa Voice Service,我正试图为我的Alexa技能开发一个PHP后端。没什么大不了的,只是为了学习 我想做的是: 我想在技能一开始就演奏一些音乐。我用以下方法解决了这个问题: if ($RequestMessageType == "LaunchRequest") { $ReturnValue = ' { "version": "1.0", "sessionAttributes": {}, "response": { "outputSpeech": {
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
}
}';
}
那很好用
除此之外,如果我说:“Alexa,停下来”,我想要停止播放音乐的技能。这似乎不起作用。我尝试了以下方法:
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
} }';
}
if ($RequestMessageType == "SessionEndedRequest") {
$ReturnValue = '{
"type": "SessionEndedRequest",
"requestId": "$RequestId",
"timestamp": "' . date("c") . '",
"reason": "USER_INITIATED "
}';
}
我总是得到一个“糟糕的反应”:技能返回一个无效的反应
我的SessionEndRequest如下所示:
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
} }';
}
if ($RequestMessageType == "SessionEndedRequest") {
$ReturnValue = '{
"type": "SessionEndedRequest",
"requestId": "$RequestId",
"timestamp": "' . date("c") . '",
"reason": "USER_INITIATED "
}';
}
有人知道如何以正确的方式停止音频播放器吗?您不需要推翻意图,因为您的技能在请求时未激活。当音频正在流式传输且用户请求停止时,您将收到AudioPlayer.PlaybackStopped通知事件,Alexa将停止请求您的音频流。处理这是可选的 从。 当Alexa响应语音请求或AudioPlayer指令停止播放音频流时发送
您可以使用AudioPlayer.stop函数来停止音频,但调用过程是:Alexa,my_skillname,stop。Hi,您使用哪个php库发送Alexa请求并从API接收。