You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中借助Bonsoir识别Google Cast设备能力的方法问询

问题描述
  • 在Flutter应用中使用Bonsoir 2.0.0,通过_googlecast._tcp服务类型发现可用Google Cast设备,已成功检测到设备,但需要像Android Cast库的CastDevice那样,按音视频全支持、仅视频、仅音频等设备能力过滤设备。
  • 当前Bonsoir包无此内置功能,已获取到设备服务信息(如下方示例),其中包含cd字段,不确定该字段是否与设备能力相关,寻求解决建议。

仅音频设备的服务信息示例:

{
   "service.name":"Google-Nest-Mini-f085fd9042490e01a04233c8bf333778",
   "service.type":"_googlecast._tcp",
   "service.port":8009,
   "service.attributes":{
      "bs":"FA8FCA78A8D0",
      "cd":"5810A9FF37B193370398E3678764CF83",
      "rs":"",
      "st":"0",
      "md":"Google Nest Mini",
      "fn":"Office speaker",
      "nf":"1",
      "ic":"/setup/icon.png",
      "id":"f085fd9042490e01a04233c8bf333778",
      "rm":"",
      "ca":"199172",
      "ve":"05"
   },
   "service.ip":"192.168.*.**"
}
解决建议
  • 利用cd字段判断能力:cd是Google Cast设备的Capabilities Digest,是设备支持能力列表的SHA-1哈希值。你可以:
    • 收集已知设备类型的cd值(比如Chromecast的音视频全支持、Nest Mini的仅音频),建立映射表做快速匹配。
    • 反向解析哈希对应的原始能力:原始能力字符串包含video_out、audio_out等标识,将这些标识按特定顺序拼接后做SHA-1哈希,即可与cd字段比对。
  • 通过设备型号辅助过滤:md字段是设备型号(如示例中的Google Nest Mini),这类设备本身定位为音频设备,可结合型号名称做初步筛选,但精度不如cd字段。
  • 调用设备HTTP接口获取精准能力:Cast设备的8009端口提供REST接口,发送GET请求到http://[设备IP]:8009/setup/eureka_info,返回的JSON数据中capabilities字段会直接列出设备支持的能力(例如["audio_out"]或["video_out", "audio_out"]),这是最可靠的方式。

内容的提问来源于stack exchange,提问作者Raghu Mudem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:42:27