Я хочу слушать радио в моем собственном приложении, созданном с помощью диалогового процесса с использованием веб-перехватчика (размещенного на firebase). Я видел образец диалогового потока с предварительно созданным агентом, но он помогает только создать намерение, а не то, как воспроизводить радио.
Я знаю, что мы можем передавать аудио с помощью SSML или mp3 файлов, но я никогда не видел ничего о радио?
Я знаю, что это возможно, потому что я могу попросить свой Google Home Mini включить радиостанцию, но можно ли создать приложение, которое это сделает? Любые указания будут оценены.
@stuartd Хорошо! спасибо за Ваш ответ!
Что вы имеете в виду под "радио"? Каков источник звука? (Например, вы предоставляете звук. Как вы хотите его отправить?)
@Prisoner Я бы хотел иметь что-то похожее на то, что встроено в мой Google Home, например, когда я говорю: «Окей, Google, je veux écouter France-Inter» (Окей, Google, я хочу услышать France-Inter), я хочу услышать такой же вывод. Аудио находится на сервере France Inter, и я, вероятно, смогу получить его по его IP, но пока у меня нет возможности воспроизвести его. В противном случае я хотел воспроизвести свой список воспроизведения (список аудиофайлов), но я не могу поместить более одной музыки в Media Response, и ограничение SSML является проблемой.





У вас есть две немного разные проблемы, которые вы пытаетесь решить.
Радиопотоки, такие как поток France-Inter, о котором вы говорите, по-прежнему необходимо координировать напрямую с Google или с одним из существующих потоковых сервисов.
Для ваших собственных аудиофайлов SSML, безусловно, является проблемой, но вы можете справиться с тем, что хотите, с помощью Ответ СМИ. Dialogflow будет вызываться с событием actions_intent_MEDIA_STATUS, которое вы можете создать намерение для захвата. Затем вы можете отправить еще один медиа-ответ со следующей песней в списке воспроизведения.
Обновлять на основе вашего комментария.
Для сохранения своей позиции в плейлисте необходимо нет использовать глобальную переменную. Облачные функции Firebase не гарантируют, что вы получите один и тот же экземпляр два раза подряд. Есть несколько хорошие подходы, которые сводятся к одному из
app.dataЭто именно то, о чем я думал относительно реакции СМИ! Моя проблема теперь заключалась бы в том, чтобы узнать свою позицию в моем плейлисте, потому что для каждого полученного https-запроса я создаю экземпляр нового класса, и поэтому я не могу сохранить свою позицию в качестве атрибута. Поскольку мой код находится на базе firebase, возможно, я смогу использовать для него что-то вроде глобальной переменной. Спасибо за указатели!
Ответ обновлен, чтобы ответить на ваш вопрос о плейлисте. (Однако вдаваться в подробности лучше всего в качестве другого вопроса)
Спасибо! Я проверю это и, если у меня возникнут проблемы, я задам другой вопрос
Как вы используете объект app.data для хранения информации? Когда я создаю свое приложение, я инициализирую индекс своего списка воспроизведения на 0, когда я запускаю список воспроизведения, я увеличиваю его. Затем в конце аудио я получаю событие конца мультимедиа и проверяю значение индекса, но оно всегда равно 0 ... Нужно ли мне добавлять его как JSON или он не сохраняет данные сеанса?
Использование app.data лучше всего задать другим вопросом.
Согласно комментарию к этот ответ, сделанному Инженер по программам для разработчиков Google, «Потоковая передача пока не поддерживается [в Actions on Google]».