Как создать библиотеку ТВ-тюнер для Android? - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть коробка андроида K1 Plus, в которой есть встроенный тюнер dvb-t2` и dvb-s2. Я хочу создать приложение, которое получает и показывает каналы этих тюнеров.

Сначала я нашел про андроид TV Input Framework(TIF). Пример приложения продолжает падать, вызывая метод, который получает доступные входные данные устройства. Затем выяснилось, что это работает только на реальные Android TVs. Я искал библиотеки Android для этой коробки Android, но ничего не нашел. Я искал библиотеки c, которые могут получить доступ к тюнерам, но ничего не нашел. Я искал код для доступа к аппаратным компонентам устройства Android и ничего не нашел. Недавно я обнаружил около https://opencv.org/. Я еще не прочитал все об этом, поэтому я не знаю, как его использовать.

Я нашел около https://git.linuxtv.org/v4l-utils.git из ответа на вопрос SO, но кажется, что его можно использовать только после его установки на ОС. Я смог скомпилировать его, используя CMake на Android, но он потерял заголовочные файлы. Я также нашел http://android4tv.iwedia.com. К сожалению, он также использует TIF.

Я пытаюсь создать что-то вроде kodi, но я обнаружил, что на самом деле каналы получают не тот, а kodi, получающий его из поддерживаемой коробки iptv. У меня нулевые знания о написании C, но я постараюсь сделать код.

Это коробка между прочим. http://www.videostrong.com/S905D+DVB(KI%20PLUS)/55.html

Из моего исследования я нашел около HAL(Hardware Abstraction Layer). Нужно ли это для создания моего C кода?

Обновление:

После месяцев исследований и не найдя быстрого способа реализации библиотеки ТВ-тюнеров, я вернулся к своим закладкам из предыдущих исследований. Одним из них является это . Первый шаг из этого SO ответа - сделать ls /dev/dvb/ на устройстве. Поскольку мне нужно сделать это на самой коробке Android, я исследовал приложения терминала для Android и нашел Termux. Затем я выполнил команду ls /dev/dvb/ на Termux, и она сказала, что ресурс не найден или его не существует. Затем я попытался выполнить команду 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.

UPDATE:

Теперь я могу использовать USB-ТВ-тюнер, основываясь на предложении.

UPDATE:

Есть ли список стандартных команд usb byte [], связанных с ТВ-тюнером, на которые я могу посмотреть? Я уже видел некоторые из них, но они в основном предназначены для FTDI, последовательных или действительно стандартных команд, которые мне не нужны.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

вы нашли решение, потому что я сейчас работаю над тем же и блокирую

0 голосов
/ 10 ноября 2018

Вероятно, потребуется много обратного инжиниринга или просочившейся документации, чтобы достичь того, что вы пытаетесь сделать.

Такие устройства, как , на котором вы работаете , обычно используют аппаратные устройства с драйверами для таких устройств, как DVB, поэтому создание стороннего приложения для ТВ-тюнера очень сложно.

Во-первых, вам необходимо выяснить, какой тип чипа / карты DVB есть в этой коробке Android. Затем вам нужно выяснить, как (на каком именно BUS) он подключен к системе.

Если это что-то общее, вы можете поговорить с его драйвером, если нет, вам нужно написать свой собственный драйвер.

Это слишком сложно объяснить в посте SO, но вы можете начать с открытия окна и просмотра компонентов или выполнения команд, таких как lsusb через ADB, чтобы попытаться идентифицировать компонент DVB.

Если на устройстве уже есть приложение DVB, вы можете попробовать разобрать его, чтобы узнать, как оно работает.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...