如何为Android创建电视调谐器库?

时间:2018-11-10 10:00:36

标签: android c cmake

我有一个K1 Plus android盒子,里面装有内置的dvb-t2`和dvb-s2调谐器。我想创建一个从这些调谐器获取并显示频道的应用程序。

起初,我发现了有关Android TV Input Framework(TIF)的信息。该示例应用程序通过调用获取设备可用输入的方法来不断崩溃。然后,发现它仅适用于实数Android TVs。我在该android盒中寻找android库,但没有找到任何东西。我在寻找可以访问调谐器但找不到任何东西的c库。我在寻找有关如何访问android设备的硬件组件的代码,但未找到任何内容。我最近发现了https://opencv.org/。我还没有阅读所有有关它的内容,所以我真的不知道如何使用它。

我从一个SO问题的答案中发现了关于https://git.linuxtv.org/v4l-utils.git的信息,但似乎只能在将其安装到操作系统后才能使用。我可以在Android上使用CMake对其进行编译,但缺少头文件。 我还发现了http://android4tv.iwedia.com。不幸的是,它也使用TIF

我正在尝试创建类似kodi的东西,但是我发现它并不是真正获得渠道的那个,但是kodi是从受支持的iptv盒中获取它的。我对编写C的知识为零,但我会尽力编写代码。

这是盒子。 http://www.videostrong.com/S905D+DVB(KI%20PLUS)/55.html

从我的研究中,我发现了HAL(Hardware Abstraction Layer)。我需要用它来制作我的C代码吗?

更新:

经过几个月的研究,没有找到实现电视调谐器库的任何快速方法,我回到了以前研究的书签。其中之一是this。该SO答案的第一步是在设备上进行ls /dev/dvb/。因为我需要在android盒子上自己做,所以我研究了android终端应用程序并找到了Termux。然后,我在Termux上执行了ls /dev/dvb/命令,它告诉您找不到资源或资源不存在。然后我尝试执行一个ls /dev/命令,幸运的是我得到了结果。其中有很多,我发现了与dvb相关的内容。

与dvb相关的结果是:

dvb0.demux0
dvb0.demux1
dvb0.demux2
dvb0.dsc0
dvb0.dsc1
dvb0.dvr0
dvb0.dvr1
dvb0.dvr2
dvb0.net0
dvb0.net1
dvb0.net2

我可以发布整个列表,但我会发布更相关的(我认为)结果。 结果与上面的链接示例完全不同,因为它们仅使用了dvb而不是dvb0。

更新:

根据我的建议,我现在可能会使用USB电视调谐器。

更新:

是否有我可以查看的与标准和电视调谐器相关的usb byte []命令列表?我已经看到了一些,但是它们主要用于FTDI,串行命令或真正没有用的真正标准命令。

2 个答案:

答案 0 :(得分:0)

要实现您想做的工作,可能需要大量的逆向工程或泄漏的文档。

诸如the one you are working之类的设备通常使用专有硬件和专有驱动程序来处理DVB之类的事情,因此为电视调谐器制作第三方应用非常困难。

首先,您需要确定此Android机顶盒具有哪种DVB芯片/卡。 然后,您需要弄清楚它是如何(以哪种BUS)连接到系统的。

如果是通用的,则可以与它的驱动程序对话,否则,则需要编写自己的驱动程序。

这太复杂了,无法在SO帖子中解释,但是您可以首先打开包装盒并查看组件,或者通过ADB运行诸如lsusb之类的命令来尝试识别DVB组件。

如果该设备已经具有DVB应用,则可以尝试将其拆解,以了解其工作原理。

祝你好运!

答案 1 :(得分:0)

您找到了一个解决方案,因为我现在正在处理同一件事,但我正在阻止