【问题标题】:Detecting if HDMI input is currently the TV's selected source, using Raspberry PI使用 Raspberry PI 检测 HDMI 输入当前是否是电视的选定源
【发布时间】:2017-08-08 02:16:01
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 你找到方法了吗?

标签: raspberry-pi raspberry-pi3 hdmi


【解决方案1】:

HDMI 接收设备(如电视)在切换源时不再中断 HDMI“握手”。 HDMI 刚成立的时候,切换信号源需要 3-6 秒……通常在过渡期间会出现黑屏。电视消费者认为这是不可接受的,因此制造商创造了“永远在线”的输入。这使得即使在切换时连接也似乎保持打开状态。

【讨论】:

    【解决方案2】:

    你可以试试 “电视服务--名称” 我试过不连接显示器,它回复了 “[E] 不存在设备” 也许它在连接时回复电视名称。

    【讨论】:

    • 嗨Himanshu,谢谢你的建议。设备随电视一起启动(例如 device_name=SAM-SAMSUNG)。但是,当我切换到不同的源(例如电视而不是 HDMI)时,该命令返回相同的值。此外,当我断开电缆时,值保持不变。一种选择是强制重新初始化(不确定这有多可取,因为现在我使用的是 5s 轮询脚本,然后每次都需要重新初始化)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      相关资源
      最近更新 更多