我有一台不支持HDMI-CEC的电视,我一直在尝试在Raspberry Pi和ChromeCast之间建立一座桥梁,以便Raspberry Pi可以通过从遥控器接收IR来暂停或停止播放。
使用Pi上的cec-client
,我可以看到:
pi@raspberrypi:~/libcec/build $ echo "scan" | cec-client -s -d 1
opening a connection to the CEC adapter...
requesting CEC bus information ...
ERROR: [ 12174] failed to request the physical address
CEC bus information
===================
device #1: Recorder 1
address: 2.0.0.0
active source: no
vendor: Pulse Eight
osd string: CECTester
CEC version: 1.4
power status: on
language: eng
device #4: Playback 1
address: f.f.f.f
active source: no
vendor: Unknown
osd string: Chromecast
CEC version: 1.4
power status: on
language: ???
failure to request the physical address
消息是因为ChromeCast。
到目前为止,我已经将其设置为活动源,使 Pi 成为活动源,当然,由于电视不在乎,因此它们都没有任何作用,但是在玩这些时,我还发送了tx
命令,这些命令应该暂停、播放或停止。 ChromeCast没有回应。
这些是我发送的一些命令:
echo "tx 14 44 46" | cec-client -s -d 1
echo "tx 14 44 61" | cec-client -s -d 1
echo "tx 14 44 45" | cec-client -s -d 1
echo "tx 14 41 25" | cec-client -s -d 1
# etc
他们都没有收到任何回应。
ChromeCast是否需要电视才能响应? 我需要执行或发送哪些特定操作才能让媒体接收器做出响应?
编辑:进一步的研究表明Chromecast发送:
TRAFFIC: [ 47738] >> 4e:83
TRAFFIC: [ 47811] >> 4e:9f
开机时,这是对物理地址和 CEC 版本的请求。
我真的很想在我的电视周围扔一个 $CAN 10 Pi Zero 和几美元的红外接收器和桥接 HDMI-CEC。
该规范可在线获得,并描述了地址方法。 最终没关系,因为我的 cec-client 的消息格式错误。
echo "tx 14:44:44" | cec-client -s -d 1
有了冒号,瞧,我的覆盆子派可以控制我的 chromecast。