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

如何通过castv2-client设置Google Home的播放音量?

解决Google Home播放音频音量过大且被程序覆盖的问题

问题根源

你的代码里明确写了client.setVolume({ level: 1 }),这里的level取值范围是0(静音)到1(最大音量),每次运行程序都会强制把设备音量设为最大值,这就是手动调低后又被恢复的原因。

解决方案

有两种处理方式,根据你的需求选择:

方式1:固定设置一个低音量

直接修改setVolume中的level值为0到1之间的小数,比如设置为0.3(对应30%音量):

// 替换原来的setVolume代码
client.setVolume({ level: 0.3 }, function (err, volume) {
  console.log("VOLUME", volume);
  if (err) {
    console.log("Error on setVolume:", err);
  } else {
    console.log("Sending new alert");
  }
});

你可以根据实际需求调整level的数值,比如0.2是20%,0.5是50%。

方式2:保留设备当前的音量

如果希望程序不修改设备的音量,直接使用用户手动设置的音量播放,删除整个client.setVolume代码块即可,这样程序就不会再强制覆盖设备的音量设置。

修改后的完整代码示例(以方式1为例)

var Client = require("castv2-client").Client;
var DefaultMediaReceiver = require("castv2-client").DefaultMediaReceiver;
const googleTTS = require("google-tts-api");
var cron = require("node-cron");

function broadcastMessage(message) {
  var App = {
    playin: false,
    DeviceIp: "",
    Player: null,
    GoogleHome: function (host, url) {
      var client = new Client();
      client.connect(host, function () {
        client.launch(DefaultMediaReceiver, function (err, player) {
          // 修改这里的level值为你需要的音量
          client.setVolume({ level: 0.3 }, function (err, volume) {
            console.log("VOLUME", volume);
            if (err) {
              console.log("Error on setVolume:", err);
            } else {
              console.log("Sending new alert");
            }
          });

          var media = {
            contentId: url,
            contentType: "audio/mp3",
            streamType: "BUFFERED",
          };
          App.Player = player;
          App.Player.load(media, { autoplay: true }, function (err, status) {
            App.Player.on("status", function (status) {
              if (status.playerState === "IDLE" && App.playin === false) {
                client.close();
              }
            });
          });
        });
      });
      client.on("error", function (err) {
        console.log("Error: %s", err.message);
        client.close();
      });
    },
    run: function (ip, text) {
      App.DeviceIp = ip;
      const url = googleTTS.getAudioUrl(text, {
        lang: "en-US",
        slow: false,
        host: "https://translate.google.com",
      });
      App.GoogleHome(App.DeviceIp, url, function (res) {
        console.log(res);
      });
    },
    broadcast: function (text) {
      const ip = "192.168.0.17";
      App.run(ip, text);
    },
  };

  App.broadcast(message);
  setTimeout(() => {
    App.broadcast(message);
  }, 4000);
}

module.exports = {
  broadcastMessage,
};
broadcastMessage("Incoming message");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:55:28