一、背景

尽管在HomePod设备上,硬件支持Wi-Fi、蓝牙和NFC,但根据Apple规定,它们只能配合Apple设备使用。

不得不说,Apple的部分外围设备的确是极具性价比的选择,代价就是配合Apple设备使用。

在Android电视上使用是一个非常普遍的需求,尤其在中国,大部分用户不会选择Apple TV,而是使用由中国的三家运营商提供的IPTV机顶盒。它们通常是安卓系统,并不能配合HomePod使用。

二、实现方式简介

目前在非Apple产品上让HomePod发出声音,有以下三种方式:

1、在X86的通用型号上安装MacOS,通过Hackintosh的方式,安装LoopBack应用程序实现音频转发。

2、在Windows上安装TuneBlade应用程序,通过选择的方式实现音频转发(极低延迟)

3、在支持AirPlay2协议的播放器上播放内容。

三、音频转发

本文采取的实现方式是通过TuneBlade和USB声卡实现HomePod的AUX功能。

1、简单安装TuneBlade,并插入USB声卡

2、将电视与PC连接,电视的音频输出线缆接入PC的麦克风输入接口或者是“音频输入”接口。

3、在电视上播放声音,打开PC的音频控制面板,查看是否出现声音波形。

「提醒:」如果你和我一样,是在ESXI虚拟系统中安装的HomePod转发Windows客户操作系统,请注意你需要直通连接USB声卡的USB控制器(至少在ESXI7.0U2中是这样)。

直通你的USB控制器

4、如果顺利出现声音波形,那么恭喜你,你已经成功一半了!

5、接下来进入TuneBlade,音频捕捉中选择麦克风为终端节点。

「提醒:如果你还想共享PC上的音频到HomePod,则你应该选择混音设备,此处不再展开」

进入延迟调节界面,选择为“实时”,或自定义为20ms以下。

我选择了自定义为14ms

恭喜你,通过Windows AUX已经实现完成。

如果你作为普通播放器使用,那么教程到此结束。

但是如果你准备配合Android TV使用,请往下看。

四、自然联动

假设你通过这种方式连接HomePod,你会发现一个问题:

如果你选择不关闭PC,那么TuneBlade将会持续占用你的音频进程,你不能播放在HomePod上播放音乐或是环境音。

如果你选择关闭PC,则你每次开启电视都要手动开启电视,这非常麻烦。

通过HomeAssistant联动则可以轻松解决这个问题。

【一、调整关闭HomePod的部分】

1、在PC操作系统上安装操作休眠的软件:Airytec Switch Off

控制电脑休眠的程序

2、打开软件的网页控制功能

打开Web控制

3、获取让电脑休眠的URL地址。

复制链接按钮所链接的地址备用

【二、调整允许PC远程唤醒的部分】

1、打开PC的WOL功能,PC上一般可以直接启用,可以在网络搜索资料

如何你和我一样使用ESXI,则可以在控制台中调整它。

启用:LAN唤醒

2、记录PC的MAC地址。

【三、配置WOL服务器】

1、WOL可以通过多种方式触发:Python,Web控制台,软件,手动控制网卡发送报文。

2、无论如何,将你的方法监听一个网页,使得我们可以在同一个开关控制它。

3、拷贝这个网址。

「如果你不会或者你不想麻烦,也可以添加多个实体,自动化依然能进行,只是它们将会丧失手动开关」

【四、配置HomeAssistant】

1、配置Configuration.yaml ,手动配置我们需要的开关

示例:通过配置文件手动启用开关
switch:
  - platform: command_line
    switches:
      homepod_player:
        command_on:  /usr/bin/curl -X GET  "http://10.1.1.2:8080/api/wakeup/computer/HomePodMini"
        command_off: /usr/bin/curl -X GET  "http://10.1.1.70:8000/?action=System.Sleep"

2、配置Ping探测器

示例代码:通过Ping的方式,检测电视的存活性
device_tracker:
  - platform: ping
    hosts:
      hostone: 10.1.1.25 # 电视的ip地址
    interval_seconds: 2 # 每隔2秒检测一次
    consider_home: 15 # 如果连续4秒内一直ping不通,那么电视就是离线状态

3、重启Core以加载你新设置的配置文件

不出意外,在实体中已经出现你添加的虚拟开关和探测器。

4、配置自动化

(1)配置触发条件为刚刚设置的探测器

「配置帮助:“home”状态为在线,“not_home”状态为不在线。」

配置逻辑为,当电视从不在线的状态改变为在线时。

(2)配置动作为启动虚拟开关。

配置动作为调用服务

动作类型选择调用服务,服务内容选择打开开关,目标选择为我们刚刚添加链接的虚拟开关。

(3)关闭自动化同理。

自此,当你打开电视时,TuneBlade将会自动帮助你输出音频,关闭电视时,由于运行Tuneblade的计算机休眠,输出的音频将会自动暂停。

Enjoy it!

罗辑赞歌

韩俊钊

2022.07.03

Categories:

No responses yet

发表评论

您的电子邮箱地址不会被公开。