是的,这是完全可以做到的,然而它是难以置信的善变。 HDMI CEC像公共汽车一样工作。通常,在两个方向。
您的问题:
- 是。尽管我使用JNI来访问执行实际工作的本地代码。您可能可能能够纯粹使用Java。
- 可能不是。问题是每个供应商都实施代码来发送CEC信号。除了CEC命令本身之外,根本没有共同的功能。访问的设备文件在大多数设备中可能都是独一无二的,特别是从供应商到供应商。因此,任何创建的图书馆都支持广泛的不同供应商和他们的怪癖,而且它将不会面临下一个供应商变更的未来挑战。
- 不幸的是我无法提供我的工作代码。我在github上提供了一个Amlogic源文件的链接,它可以完成许多工作。我的代码看起来类似。
我自己的一些点:
- 并非所有设备都支持所有命令。许多较少使用的命令将不会被执行,因为它花费更多。
- 与CEC的交互通常取决于供应商。他们可能会有自己的库或设备文件来处理。
- CEC不会总是在两个方向上工作,它取决于供应商是否实现了该功能。它并不总是得到实施,因为它的成本更高。
要正确地做到这一点,您可能需要使用JNI来实现您的代码以形成正确的数据包。至少对于Amlogic,您可能需要find this useful。
我在我的设备中使用的设备接入点是/dev/amhdmitx0
。您可以将您的格式良好的数据包发送到该位置。
这是一个有用的网站,可以告诉你如何形成CEC命令:http://www.cec-o-matic.com/。
不幸的是,我不能分享比我写的更多的东西。出于各种法律原因。
您可以做的最好的事情是从您正在编程的供应商那里寻求帮助。如果您正在为特定平台编码。他们可能愿意帮助你。
有*可能*的方式,但1)您的设备必须有一个红外发射。和2)询问图书馆对于StackOverflow是无关紧要的。祝你好运! –
https://source.android.com/devices/tv/HDMI-CEC.html –
你有问题的设备的根访问? –