Ознакомьтесь с Справочником по интерфейсу AudioPlayer от Amazon. Он дает довольно подробное руководство о том, как заставить работать аудиоинтерфейс. По сути, это сводится к добавлению еще одной директивы в список директив, которые вы возвращаете в своем ответе JSON. Для меня это автоматически появится на экране аудиоплеера.
Базовая версия звуковой директивы выглядит следующим образом:
{
"type": "AudioPlayer.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"token": "Audio Playback",
"url": "http://www.audio.com/this/is/the/url/to/the/audio",
"offsetInMilliseconds": 0
}
}
}
ENQUEUE
добавляет указанный поток в конец очереди текущего потока. Клавиша offsetInMilliseconds
устанавливает, как далеко в потоке (в миллисекундах) должно начинаться воспроизведение.
Когда вы вкладываете это в более крупный ответ JSON, он принимает следующую форму:
{
"version": "1.0",
"sessionAttributes": {},
"response": {
"outputSpeech": {},
"card": {},
"reprompt": {},
"directives": [
{
"type": "AudioPlayer.Play",
"playBehavior": "ENQUEUE",
"audioItem": {
"stream": {
"token": "Audio Playback",
"url": "http://www.audio.com/this/is/the/url/to/the/audio",
"offsetInMilliseconds": 0
}
}
}
],
"shouldEndSession": true
}
}
Есть несколько других опций, которые можно включить в вашу звуковую директиву. Их можно найти по ссылке, о которой я упоминал выше.
Я считаю наиболее полезным создать функцию, в которой вы можете передавать заданные значения для создания директивы AudioPlayer JSON. Например, в Python это может выглядеть следующим образом:
def build_audio_directive(play_behavior, token, url, offset)
return {
"type": "AudioPlayer.Play",
"playBehavior": play_behavior,
"audioItem": {
"stream": {
"token": token,
"url": url,
"offsetInMilliseconds": offset
}
}
}
Есть несколько способов вызвать реакцию, но я считаю, что этот способ легче всего визуализировать.
person
peachykeen
schedule
28.01.2018