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

能否适配rn-samsung-tv-remote实现多品牌电视WiFi遥控?

适配飞利浦电视的WiFi遥控方案

一、修改rn-samsung-tv-remote库适配飞利浦的可行性及入手点

可以修改,但核心是替换协议层逻辑——三星和飞利浦的WiFi遥控通信协议完全不同,前者基于自定义TCP数据包,后者多采用REST/HTTP或WebSocket协议。入手步骤:

  1. 拆解原库核心流程
    先梳理rn-samsung-tv-remote的关键逻辑:设备扫描(SSDP)→ TCP连接建立 → 配对认证 → 按键指令发送。把这些模块拆分为独立的可替换组件。

  2. 替换设备发现逻辑
    你已通过react-native-wifi-p2p找到飞利浦设备,需补充确认电视的服务端口(飞利浦常用端口为1925、8000)。可替换原库的SSDP扫描逻辑为你现有的wifi-p2p扫描,或添加SSDP扫描(搜索urn:schemas-philips-com:device:TV:1类型设备)。

  3. 替换认证与指令发送逻辑

    • 认证:飞利浦电视需要用户在设备上确认配对,流程为:发送GET http://<tv-ip>:1925/1/pair/request请求配对,电视显示PIN后,发送POST http://<tv-ip>:1925/1/pair/grant携带PIN和设备信息完成认证。
    • 指令:替换原库的TCP数据包发送为HTTP POST请求,比如发送按键指令:
      fetch(`http://${tvIp}:1925/1/input`, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          method: 'input',
          params: { key: 'KEY_UP' }
        })
      })
      

    常用按键值参考:KEY_UP、KEY_DOWN、KEY_LEFT、KEY_RIGHT、KEY_OK、KEY_VOLUMEUP、KEY_VOLUMEDOWN、KEY_MUTE等。

二、无需修改原库的替代实现思路

如果修改库成本过高,可直接基于飞利浦官方协议实现,或采用以下方案:

1. 纯React Native原生实现(优先推荐)

  • 设备发现:使用react-native-ssdp扫描飞利浦TV设备,或继续用react-native-wifi-p2p获取设备IP。
  • 指令发送:用React Native内置的fetch或react-native-websocket发送HTTP/WebSocket指令,无需依赖第三方遥控库。
  • 注意:需确保飞利浦电视开启「网络遥控」功能(路径:设置 → 网络 → 远程控制 → 开启)。

2. 跨平台通用遥控框架

若截止日期紧张,可考虑使用支持多品牌的跨平台遥控解决方案,比如集成基于Python的pywebostv(需通过React Native的原生模块桥接调用),该库支持飞利浦、LG等多个品牌的电视遥控,可快速实现核心功能。

3. 硬件辅助方案(备选)

若软件实现遇阻,可使用红外转WiFi模块(如BroadLink RM系列),通过模块发送红外指令控制电视,React Native只需调用模块的API即可,无需对接电视的网络协议。

三、针对你已发现飞利浦设备后的指令发送步骤

  1. 获取电视的IP地址(从getAvailablePeers()返回的设备信息中提取)。
  2. 测试电视端口连通性:用手机浏览器访问http://<tv-ip>:1925/1/system,若返回设备信息则说明协议端口正常开放。
  3. 发送配对请求:调用fetch发送GET请求到http://<tv-ip>:1925/1/pair/request,电视会显示配对PIN码。
  4. 完成配对:发送POST请求携带PIN码:
    fetch(`http://${tvIp}:1925/1/pair/grant`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        method: 'grant',
        params: {
          pin: '1234', // 电视显示的PIN
          device: { name: 'MyRemote', id: 'unique-device-id' }
        }
      })
    })
    
  5. 发送遥控指令:配对成功后,即可发送前文的按键指令。

内容的提问来源于stack exchange,提问作者marcelo colombo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:55:34