检测HDMI输入是否是电视当前选择的源,使用Raspberry PI



我正在使用通过HDMI连接到三星电视的RPi。我正在尝试触发 RPi 进程,以便它们仅在电视使用 HDMI 输出时才处于活动状态。实际上,我想在从电视中选择正确的HDMI输入时开始该过程,并在选择另一个电视源时终止该过程。

我尝试为此使用tvservice –s,但命令的输出不会根据电视是否配置为使用 RPi 的 HDMI 或任何其他来源而改变。

因此,我欢迎关于可以使用哪些其他机制(例如低级驱动程序,libCEC,xrandr(来确定电视当前是否正在使用RPI的HDMI的建议。

谢谢!

HDMI 接收器设备(如电视(在切换信号源时不再中断 HDMI"握手"。 当HDMI还很年轻的时候,切换信号源需要3-6秒......在此期间通常出现黑屏。 电视消费者发现这是不可接受的,因此制造商创造了"始终开启"的输入。 这使得连接即使在切换时似乎仍保持打开状态。

你可以试试 "电视服务 --名称" 我已经尝试过没有连接显示它回复了 "[E] 不存在设备" 也许它在连接时回复电视名称。

无论我如何尝试使用tvservice -stvservice -m,无论电视是打开,待机还是关闭,它仍然报告相同的值state 0x120001 [TV is off]。我的电视是一些较旧的三星,设备是RPi 4B。 我发现检测电视是否打开或待机的唯一解决方案是使用监控 CEC 命令的cec-ctl -m。当电视进入待机状态时,它会发送一条包含STANDBY文本的消息。所以我首先监视 CEC 和 grep 待机消息,然后关闭 RPi 电源。cec-ctl -m --tv | grep -m 1 STANDBY. 也许这会帮助某人。如果有人觉得有趣,我可以发布我的完整 shell 脚本。

最新更新