首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android和HDMI CEC

Android和HDMI CEC
EN

Stack Overflow用户
提问于 2016-09-10 05:37:25
回答 1查看 8.7K关注 0票数 22

我使用安卓4.4.4版本的PlugPC (计算棒),将它连接到电视的HDMI端口,以控制电视上正在显示的内容。我的应用程序在启动时启动,控制屏幕。现在,我想通过我的应用程序来控制电视音量和信号源开关(也许)。在这方面,我有以下问题:

  1. 有没有办法通过安卓系统发送HDMI-CEC命令使用Java来控制电视音量、开/关等兼容的电视?
  2. 安卓提供的或其他方面提供的任何Java库?
  3. 使用CEC的简单Java示例。

附注-我理解(https://source.android.com/devices/tv/HDMI-CEC.html)中提出的理论,但对如何用代码实现一无所知。请具体回答上述问题。

EN

回答 1

Stack Overflow用户

发布于 2016-12-19 17:29:46

是的,这是完全可能的,但它是令人难以置信的反复无常。HDMI CEC的工作方式类似于总线。通常,在两个方向上。

您的问题:

  1. 是。虽然我使用JNI来访问完成实际工作的本机代码。你完全可以用java语言来做这件事,但
  2. 可能不行。问题是每个供应商都实现了发送CEC信号的代码。除了CEC命令本身之外,根本没有通用的功能。访问的设备文件在大多数设备中可能是唯一的,尤其是在不同的供应商之间。因此,创建的任何库都支持广泛的不同供应商和他们的怪癖,并且它不会针对下一个供应商changes.
  3. Unfortunately进行未来验证,我无法提供我的工作代码。我在下面提供了一个指向github上的一个Amlogic源文件的链接,该文件完成了大量的工作。我的代码看起来很相似。

我自己的一些观点:

  1. 并非所有设备都支持所有命令。许多较少使用的命令将不会实现,因为使用CEC的more.
  2. Interacting成本通常取决于供应商。他们可能会有自己的库或设备文件来使用。
  3. CEC并不总是在两个方向上工作,这取决于供应商是否实现了该功能。它并不总是被实现,因为它的实现成本更高。

要正确执行此操作,您可能需要使用JNI来实现代码,以形成适当的数据包。你可以使用find this useful,至少对于逻辑来说是这样。

我在设备中使用的设备接入点是/dev/amhdmitx0。您可以将格式正确的数据包发送到该位置。

这里有一个很有用的网站,可以告诉你如何形成一个CEC命令:http://www.cec-o-matic.com/

不幸的是,我不能分享更多我写的东西。出于各种法律原因。

你能做的最好的事情就是向你正在为之编程的供应商寻求帮助。如果你正在为一个特定的平台编码。他们可能会愿意帮助你。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39420067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档