2017-10-05 12 views
0

오디오를 내 서버에 스트리밍하는 장치가 여러 개 있습니다.Alexa 사용자 지정 스킬에 사용자 지정 장치 상태 전달

내 서버는

가 어떻게 장치가 어댑터 예 : "방 이름"에있는 방에 대해 추가 상태를 통과 할 내 사용자 지정 스킬로 오디오를 보내는? 제가 예를 들어, 컨텍스트에서 임의 여분의 헤더를 전달하는 시도

{ 
    'context': [ 
     { 
      'header': { 
       'namespace': 'AudioPlayer', 
       'name': 'PlaybackState' 
      }, 
      'payload': { 
       'token': '', 
       'offsetInMilliseconds': 0, 
       'playerActivity': 'IDLE' 
      } 
     }, 
     { 
      'header': { 
       'namespace': 'Speaker', 
       'name': 'VolumeState' 
      }, 
      'payload': { 
       'volume': 100, 
       'muted': False, 
      } 
     }, 
     { 
      'header': { 
       'namespace': 'SpeechSynthesizer', 
       'name': 'SpeechState' 
      }, 
      'payload': { 
       'token': '', 
       'offsetInMilliseconds': 0, 
       'playerActivity': 'FINISHED' 
      } 
     } 
    ], 
    'event': { 
     'header': { 
      'namespace': 'SpeechRecognizer', 
      'name': 'Recognize', 
      'messageId': 'my-messageId', 
      'dialogRequestId': 'my-dialogRequestId', 
     }, 
     'payload': { 
      'profile': 'CLOSE_TALK', 
      'format': 'AUDIO_L16_RATE_16000_CHANNELS_1' 
     } 
    } 
} 

[ 
    'header': { 
     'namespace': 'MyCustomSkill', 
     'name': 'RoomState' 
    }, 
    'payload': { 
     'name': 'kitchen', 
     'temperature': '40' 
    } 
] 

하지만 어댑터는 그 여분의 헤더에 액세스 할 수 없습니다 :

내 다중 요청이 포함되어 있습니다. 요청은 다음과 같습니다.

{ 
    "request": { 
     "locale": "en-GB", 
     "type": "IntentRequest", 
     "timestamp": "2017-10-05T22:33:35Z", 
     "requestId": "amzn1.echo-api.request.a415ac1b-7b42-4520-830d-a48912956a45", 
     "intent": { 
     "slots": { 
      "ROOM": { 
       "value": "kitchen", 
       "resolutions": { 
        "resolutionsPerAuthority": [ 
        { 
         "authority": "amzn1.er-authority.echo-sdk.amzn1.ask.skill.c9fd57b8-b243-42ed-a6a9-5745fccb6746.ROOM", 
         "values": [ 
          { 
           "value": { 
           "id": "09228dac155633b13780552bc01dc2e0", 
           "name": "kitchen" 
           } 
          } 
         ], 
         "status": { 
          "code": "ER_SUCCESS_MATCH" 
         } 
        } 
        ] 
       }, 
       "name": "ROOM", 
       "confirmationStatus": "NONE" 
      } 
     }, 
     "name": "ChatIntent", 
     "confirmationStatus": "NONE" 
     } 
    }, 
    "context": { 
     "AudioPlayer": { 
     "playerActivity": "IDLE" 
     }, 
     "System": { 
     "user": { 
      "userId": "my-user-id" 
     }, 
     "apiEndpoint": "https://api.eu.amazonalexa.com", 
     "device": { 
      "deviceId": "my-device-id", 
      "supportedInterfaces": { 
       "AudioPlayer": {} 
      } 
     }, 
     "application": { 
      "applicationId": "my-application-id" 
     } 
     } 
    }, 
    "version": "1.0", 
    "session": { 
     "user": { 
     "userId": "my-user-id" 
     }, 
     "sessionId": "amzn1.echo-api.session.8c3e0d80-69e3-49ad-a981-d1073e0100b2", 
     "new": true, 
     "application": { 
     "applicationId": my-application-id" 
     } 
    } 
} 

문맥을 통해이 작업을 수행 할 수 있습니까? 당신이 상황

https://github.com/alexa/skill-sample-nodejs-audio-player/blob/mainline/multiple-streams/js/audioEventHandlers.js#L8

를 원하는 또는 단순히 필요한 정보를 저장하는

this.attributes를 사용할 수 있는지

답변

0

당신은 상태 핸들러를 만들 수 있습니다.