Можно ли воспроизводить аудиофайл или поток?

Можно ли воспроизвести аудиофайл или поток с помощью actions-on-google- библиотека nodejs?


person DONSA    schedule 25.01.2018    source источник


Ответы (2)


Используя SSML, вы можете вернуть аудиоклип длительностью до 120 секунд.

<speak>
  <audio src="https://actions.google.com/sounds/v1/animals/cat_purr_close.ogg">
    <desc>a cat purring</desc>
    PURR (sound didn't load)
  </audio>
</speak>

Изменить

Если вы хотите воспроизводить аудио из файла mp3 (более 120 секунд), вам необходимо использовать Media Ответы

if (!conv.surface.capabilities.has('actions.capability.MEDIA_RESPONSE_AUDIO')) {
      conv.ask('Sorry, this device does not support audio playback.');
      return;
    }
    conv.ask(new MediaObject({
      name: 'Jazz in Paris',
      url: 'https://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3',
      description: 'A funky Jazz tune',
      icon: new Image({
        url: 'https://storage.googleapis.com/automotive-media/album_art.jpg',
        alt: 'Ocean view',
      }),
    }));
person Nick Felker    schedule 25.01.2018
comment
Не выше этого? Я думал в игре полный подкаст. - person DONSA; 26.01.2018
comment
К сожалению, полное воспроизведение подкастов не поддерживается, по крайней мере, таким образом. Вы можете прочитать этот документ, чтобы узнать о действиях подкаста. - person Nick Felker; 26.01.2018
comment
Мне SSML не хватает времени, чтобы поиграть. Это не тот ответ, который я ищу. - person Johnny; 02.04.2018
comment
А как насчет живого контента? - person ColorCodin; 26.06.2018
comment
Живые потоки мультимедиа не поддерживаются на платформе - person Nick Felker; 26.06.2018
comment
как я могу добиться этого с помощью php? - person Tara; 29.08.2019
comment
Когда вы посмотрите документацию MediaResponse, вы увидите эквивалент JSON. - person Nick Felker; 30.08.2019

Чтобы добавить еще один пункт к ответу Ника, вы также можете создать медиа-ответ, который позволит вам воспроизводить длинный аудиофайл (в настоящее время я проигрываю 50-минутный альбом в своем приложении). Вы можете найти его в документе Google, здесь.

Краткий пример в Node.js может быть таким:

const richResponse = app.buildRichResponse()
 .addSimpleResponse("Here's song one.")
  .addMediaResponse(app.buildMediaResponse()
  .addMediaObjects([
    app.buildMediaObject("Song One", "https://....mp3")
      .setDescription("Song One with description and large image.") // Optional
      .setImage("https://....jpg", app.Media.ImageType.LARGE)
        // Optional. Use app.Media.ImageType.ICON if displaying icon.
  ])
)
.addSuggestions(["other songs"]);

И тогда вы можете просто сделать

app.ask(richResponse)

ОБНОВЛЕНИЕ:

Согласно запросу на комментарий, вот ответ JSON, отправленный моим приложением для mediaResponse:

{
  "conversationToken": "[\"_actions_on_google\"]",
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Here is my favorite album."
              }
            },
            {
              "mediaResponse": {
                "mediaType": "AUDIO",
                "mediaObjects": [
                  {
                    "name": my_name,
                    "description": my_descr,
                    "largeImage": {
                      "url": my_url
                    },
                    "contentUrl": my_contentURL
                  }
                ]
              }
            }
          ],
          "suggestions": [
            {
              "title": my_suggestion
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "assistant.intent.action.TEXT"
        }
      ]
    }
  ],
  "responseMetadata": {
    "status": {
      "message": "Success (200)"
    },
    "queryMatchInfo": {
      "queryMatched": true,
      "intent": "0a3c14f8-87ca-47e7-a211-4e0a8968e3c5",
      "parameterNames": [
        my_param_name
      ]
    }
  },
  "userStorage": "{\"data\":{}}"
}
person Rémi C.    schedule 23.03.2018
comment
Пробовал что вроде может проигрывать только мп3. ???? Я хочу воспроизвести потоковую передачу m3u8 в моем контексте. - person Johnny; 02.04.2018
comment
Не могли бы вы также опубликовать здесь формат ответа REST (Json). Я ищу потоковое аудио в Google Home, но, возможно, я не использую nodejs sdk, который они предоставляют. - person Vikram; 17.05.2018
comment
@Vikram Конечно, я обновлю свой ответ с помощью вкладки ОТВЕТ, полученной с помощью симулятора Actions On Google. - person Rémi C.; 18.05.2018