我正在尝试开发一个基于 web-rtc 的用于相机流的谷歌智能家居动作。
在 Google Home App 中配置后,设备标签会出现在设备列表中。 但是,当我单击设备图标时,应用程序显示:“无法在此处查看此视频流。如果您有智能显示器或 Chromecast,您可以要求助手将其流式传输到那里”。
是的,当我使用 Google Nest Hub 时,它可以成功地从我的相机进行流式传输。我认为如果可以在 Nest 设备中进行流式传输,那么它也应该可以在 APP 中使用。我想知道为什么它在APP中不起作用。
以下是我对设备同步的意图回答:
{
"payload": {
"agentUserId": "anona.2589992",
"devices": [{
"traits": ["action.devices.traits.CameraStream"],
"willReportState": true,
"name": {
"defaultNames": ["anona-3f377eadb02544a6ad91e3aa518d6006"],
"name": "Anona Aurora Cam 0145",
"nicknames": ["Anona Aurora Cam 0145"]
},
"attributes": {
"cameraStreamNeedAuthToken": false,
"cameraStreamSupportedProtocols": ["webrtc"]
},
"id": "3f377eadb02544a6ad91e3aa518d6006",
"type": "action.devices.types.CAMERA",
"deviceInfo": {
"swVersion": "1.0.485",
"model": "HM1009",
"manufacturer": "anona-security",
"hwVersion": "1.0"
}
}]
},
"requestId": "15164258317675603137"
}
我试图在谷歌开发者中心找到任何文档,但没有发现任何指向此行为的内容。
同时,我厌倦了其他制造商的其他一些相机。例如,小米BW300安全摄像头。一旦我点击 google home APP 中的设备标签,它就会将流连接到该相机。
目前,WebRTC 仅在特定设备上支持,例如 Google Nest 智能显示器和带有 Google TV 的 Chromecast。这意味着虽然您的相机可以成功流式传输到这些设备,但 Google Home 应用程序不支持直接在其中进行流式传输。
对于 Google Home 应用中的流式传输,您可能需要考虑使用 HLS(HTTP 实时流式传输)。如果您的相机支持 HLS,它可以作为 Google Home 应用内流媒体的后备方案。
考虑实现以下逻辑: