11

I have cec-client running on my raspberry pi, and I'm able to switch between active sources HDMI 1 - 4 on my Sony TV with:

echo "tx 4F 82 10 00" | cec-client -s
echo "tx 4F 82 40 00" | cec-client -s

What I haven't been able to achieve is switching back to TV as active source. Since the TV normally has ID 0.0.0.0, I would expect the following command would do the trick, but no response from TV:

echo "tx 4F 82 00 00" | cec-client -s

4 = Recorder 1 (raspi)

F = Broadcast

82 = Active Source

00 00 = ID

Has anyone successfully done this pretty basic operation?

4

5 回答 5

5

尝试这个:echo "as" | cec-client -s

于 2013-09-18T17:16:49.170 回答
3

在我的三星上:

echo "txn 40 9D 00 00" | cec-client -s

工作正常。所以,不要广播!

于 2015-02-01T18:51:53.127 回答
3

我喜欢 tarapitha 的回答,因为它有解释。

如果没有其他设备报告处于活动状态,电视将切换回活动源(响应 [Request Active Source] 消息,因此这就是 [Inactive Source] 消息起作用的原因。

唯一的问题是 [Inactive Source] 消息必须直接发送到 TV,因此如果活动源的物理地址是 1.0.0.0,那么正确的帧应该是 40 9d 10 00

eman 的答案可能有效,因为电视原谅了错误的物理地址,它只是执行活动源请求并且找不到活动源,因此将自己设置为活动。

我推荐页面以了解 CEC 框架。

于 2015-11-12T18:38:39.857 回答
2

尝试使用:作为分隔符(对于那些不是 2013 年的人;从那时起它可能已经改变了)。否则它只发送第一个字节(根据调试消息)。

我有一个索尼接收器(str-dg710),该as命令对我也不起作用。甚至tx 15:82:11:00没有工作。它必须是广播地址(f)——tx 1f:82:11:00终于成功了。虽然我的 rasp 的物理 cec 地址为 1.0.0.0,但在运行时手动切换接收器输入cec-client显示第一个 HDMI 输入有 address11:00而不是10:00,因此是工作 tx 命令中的地址。

于 2018-10-24T16:47:01.060 回答
1

关于什么:
echo 'tx 4f 9d 10 00' | cec-client -s -d 1

4 - 源
f - 广播
9d - <Inactive Source> 命令
10 00 - 当前活动源的物理地址 (ID) = 1.0.0.0

将 ID 替换为当前活动源的 ID。

它不适用于我的飞利浦电视,但 CEC 标准规定“电视可能会显示自己的内部调谐器,并应发送带有电视地址的 <Active Source>;...”,因此它可能适用于其他一些系统。

于 2013-09-19T07:57:30.340 回答