Как показать текущий воспроизводимый элемент (песню) на экране проигрывателя или очереди в приложении alexa

Я могу отправить песни на устройства Amazon Echo, и песня играет. Я не понимаю, что мне нужно отправить, чтобы показать песню в плеере или на экране очереди в приложении alexa, поскольку она подходит для других музыкальных приложений, таких как saavn, spotify и т. Д. Пожалуйста, дайте мне знать, если есть какая-либо ссылка или информация по этому поводу.

Изображение очереди Alexa App для приложений saavn] 1

1 ответ

Проверьте Ссылку на интерфейс Amazon AudioPlayer. Это дает довольно полное руководство о том, как заставить аудиоинтерфейс работать. По сути, это сводится к добавлению еще одной директивы в список директив, которые вы возвращаете в своем ответе 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
            }
          }
        }

Есть несколько способов создать ответ, но я считаю, что этот способ проще всего визуализировать.

Другие вопросы по тегам