Ein Programm sollte eine Antwort auf "LaunchRequest" und "SessionEndedRequest" zurückgeben, andernfalls erhalten Sie "Es gab ein Problem mit den angeforderten Fähigkeiten repsonse".
Sie müssen Absicht "PlayMusic" hinzufügen und URL der Datei ändern.
P.S. Ich bin nicht sicher, welche version
in build_audio_response
Funktion sein sollte, bekam ich die json von here
def build_audio_response(url):
return {
"version": "1.01",
"response": {
"directives": [
{
"type": "AudioPlayer.Play",
"playBehavior": "REPLACE_ALL",
"audioItem": {
"stream": {
"token": "12345",
"url": url,
"offsetInMilliseconds": 0
}
}
}
],
"shouldEndSession": True
}
}
def handle_session_end_request():
return {
"version": "1.0",
"response": {
"shouldEndSession": True
}
}
def play_music(intent, session):
url = "https://s3-eu-west-1.amazonaws.com/bucket/filename.mp3"
return build_audio_response(url, should_end_session=True)
def on_intent(intent_request, session):
""" Called when the user specifies an intent for this skill """
intent = intent_request['intent']
intent_name = intent_request['intent']['name']
if intent_name == "PlayMusic":
return play_music(intent, session)
elif intent_name == "AMAZON.CancelIntent" or intent_name == "AMAZON.StopIntent":
return handle_session_end_request()
else:
raise ValueError("Invalid intent")
def lambda_handler(event, context):
if event['request']['type'] == "LaunchRequest":
return {
"version": "1.0",
"response": {
"shouldEndSession": False
}
}
elif event['request']['type'] == "IntentRequest":
return on_intent(event['request'], event['session'])
elif event['request']['type'] == "SessionEndedRequest":
return handle_session_end_request()
Hey, ich an der API sah. Sie haben eine Beispielnachricht, die * erscheint *, um sehr ähnlich zu sein, was Sie wollen, aber es gibt mehr Felder, um 'header' und' Nutzlast' zu identifizieren. Die API ist [hier] (https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/reference/audioplayer) und die Nachricht befindet sich im Abschnitt "Beispielnachricht". Wenn Sie diese Formatierung verwenden, erhalten Sie immer noch den Fehler? –
gerade versucht, dass, schien nicht zu helfen – maxymoo
Das funktioniert mit HTTPS, aber wie bekommen Sie es zu stoppen? Abbrechen und Stop-Befehle funktionieren nicht, sobald der Stream gestartet wird. – Fastmover