php
  • alexa
  • alexa-skills-kit
  • alexa-skill
  • alexa-voice-service
  • 2017-08-10 8 views 1 likes 
    1

    でbacklend。何も大きなものではなく、学習のためだけです。 私はスキルが始まるとすぐにいくつかの音楽を再生したい:私は何をしたいかAudioPlayer.stop - アレクサは、私は私のAlexaのスキルのためのPHPのバックエンドを開発しようとしている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 
         } 
        }'; 
    } 
    

    これはうまくいきます。 「アレクサは、停止」:私が言う場合

    とは別に、私はスキルが音楽の再生を停止します。それはうまくいかないようです。私は以下を試しました:

    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 
         } }'; 
    } 
    

    私はいつも "悪い応答"を得ます:スキルが無効な応答を返しました。

    私SessionEndedRequestは、次のようになります。

    if ($RequestMessageType == "SessionEndedRequest") { 
         $ReturnValue = '{ 
          "type": "SessionEndedRequest", 
          "requestId": "$RequestId", 
          "timestamp": "' . date("c") . '", 
          "reason": "USER_INITIATED " 
         }'; 
        } 
    

    誰でもAudioPlayer正しい方法を停止する方法を知っていますか?

    答えて

    1

    あなたのスキルが要求時にアクティブではないので、あなたが意図を上書きする必要はありません。オーディオがストリーミング中で、ユーザーが停止を要求すると、AudioPlayer.PlaybackStopped通知イベントが発生し、Alexaはオーディオストリームの要求を停止します。これはオプションです。 help pageから

    。 Alexaが音声リクエストまたはAudioPlayerディレクティブに応答してオーディオストリームの再生を停止したときに送信されます。

    あなたはあなた自身のスキルがAudioPlayer.Stop機能とオーディオを停止することができますが、呼び出しプロセスは次のようになります。アレクサ、my_skillnameは、停止します。

    関連する問題