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

如何通过编程(非Chrome浏览器)让Chromecast按URL投屏网页?

编程实现Chromecast网页投屏(无需Chrome浏览器)的可行方案

当然有可行方案!直接让Chromecast渲染指定URL完全能做到,核心是利用Chromecast的Web Receiver技术和对应的发送端SDK,完全不用依赖Chrome浏览器本身。下面是具体的实现思路和步骤:

一、先搞懂核心逻辑

Chromecast本身支持运行自定义的Web Receiver应用——这是一个跑在Chromecast设备上的轻量网页,它的作用就是接收你发送端传来的URL,然后在Chromecast的渲染引擎里加载并展示这个网页。你只需要搭建一个简单的Receiver,再写个发送端程序把URL传过去就行。

二、搭建自定义Web Receiver应用

这一步很简单,就是写一个HTML页面,集成Chromecast的Receiver SDK,处理来自发送端的URL消息:

<!DOCTYPE html>
<html>
<head>
  <title>自定义网页投屏接收器</title>
  <!-- 引入Chromecast Receiver SDK -->
  <script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
</head>
<body>
  <script>
    // 初始化Receiver上下文
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();

    // 拦截LOAD消息,提取自定义URL并跳转
    playerManager.setMessageInterceptor(
      cast.framework.messages.MessageType.LOAD,
      (request) => {
        // 从自定义数据里拿到要渲染的URL
        if (request.media?.customData?.url) {
          window.location.href = request.media.customData.url;
        }
        return request;
      }
    );

    // 启动Receiver
    castContext.start();
  </script>
</body>
</html>

关键注意事项:

  • 把这个页面部署到HTTPS服务器上(Chromecast强制要求Receiver必须用HTTPS,本地测试可以用ngrok把本地HTTP服务转成公网HTTPS)。
  • 去Google Cast SDK Developer Console注册这个Receiver应用,获取专属的应用ID——没有这个ID,Chromecast不会加载你的自定义Receiver。

三、编写发送端程序(完全脱离Chrome)

发送端可以用任何支持Cast协议的语言或框架,比如Node.js、Python、Android、iOS都可以,下面用Node.js举个例子:

1. 安装依赖

npm install castv2-client mdns

2. 发送端代码

const { Client, DefaultMediaReceiver } = require('castv2-client');
const mdns = require('mdns');

// 自动发现局域网内的Chromecast设备
const browser = mdns.createBrowser(mdns.tcp('googlecast'));

browser.on('serviceUp', (service) => {
  console.log(`找到Chromecast设备:${service.name},IP:${service.addresses[0]}`);
  
  const client = new Client();
  client.connect(service.addresses[0], () => {
    console.log('已连接到Chromecast设备');
    
    // 启动我们的自定义Receiver应用(替换成你的Receiver应用ID)
    client.launch('YOUR_RECEIVER_APP_ID', (err, player) => {
      if (err) throw err;
      
      // 准备要发送的URL数据
      const mediaData = {
        contentId: 'placeholder', // 随便填个占位符,我们用customData传URL
        customData: {
          url: 'https://你要投屏的网页地址.com'
        }
      };
      
      // 发送URL给Receiver
      player.load(mediaData, { autoplay: true }, (err, status) => {
        if (err) throw err;
        console.log('URL已发送,Chromecast开始渲染网页啦!');
      });
    });
  });
});

browser.start();

四、额外提示

  • 如果不想自己写Receiver,也可以尝试用Chromecast自带的Default Media Receiver,但它主要是为媒体播放(视频、音频)设计的,渲染普通网页的兼容性不如自定义Receiver。
  • 发送端和Chromecast必须在同一个局域网内,否则无法发现和连接设备。
  • 部分Chromecast设备可能需要开启开发者模式才能加载自定义Receiver,具体可以查Google官方文档的开启步骤。

内容的提问来源于stack exchange,提问作者Spartak Poghosyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:01:32