Android 4.4: различия между версиями
Отметить эту версию для перевода |
|||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | <translate> | ||
<!--T:1--> | <!--T:1--> | ||
| Строка 19: | Строка 20: | ||
* не работает в многозонном режиме; | * не работает в многозонном режиме; | ||
* работа с аудиоконтентом не рекомендуется из-за избыточной нагрузки на устройство. | * работа с аудиоконтентом не рекомендуется из-за избыточной нагрузки на устройство. | ||
* снятие скриншотов с проигрываемого видео, потому что прошивка не понимает команду snapshot, которая работает с ver. 21 Android SDK. Пример команды: screencap /data/data/org.smartplayer.android.client/screenshot_1002.png. При работе с видео данная команда отправляет в качестве скриншота набор черных пикселей. | |||
[[File:Скриншот_картинки.png|thumb|center| Пример работы скриншота с картинки|800px]] | |||
[[File:Скрирншот_видео.png|thumb|center| Пример работы скриншота с видео|800px]] | |||
== '''Требования к видеоконтенту''' == | |||
Ниже будет приведен список требований к видеоконтенту: | |||
* Формат кодирования: H264; | |||
* Профиль кодека: baseline | |||
* Уровень кодека: 3.0 | |||
* Пресет кодирования: slow (обеспечивает лучшее качество при умеренной скорости обработки) | |||
* CRF (Constant Rate Factor): 23 (обеспечивает сбалансированное качество и размер файла) | |||
* Звук: видео должно быть без аудиодорожки | |||
* Выходной формат: mp4 | |||
</translate> | </translate> | ||
Текущая версия от 16:22, 12 сентября 2025
Описание ситуации
На платформе SmartPlayer раньше создавались клиентские приложения под версии API начиная с 21 версии. Более ранние версии не поддерживались. Но, появилась задача адаптировать клиентское приложение под Android версии 4.4 и создать на нём решение, которое позволит стабильно отыгрывать простые виды трансляций. Данное решение было проработано и реализовано на практике.
Логика работы
Для реализации рассматривался сценарий, который включал в себя:
- проигрывание видео и графического контента;
- запуск трансляции в одной зоне.
В процессе подготовки клиентского приложения на устройстве с ОС Android 4.4 использовалось клиентское приложение ver. 1.67. У этого клиентского приложения множество функций, которые нагружало «железо» старого устройства.
Проблемы при реализации
- У версии 4.4 есть проблемы с декодингом. При доработке был изменен декодер и процесс декодинга при низкоуровневом взаимодействии.
- При разработке были проработаны проблемы с сетевым взаимодействием и работой сертификатов. Для корректной работы протоколов безопасности использовалась отдельная библиотека, которая добавляла необходимые сертификаты.
- Проблема с утечкой памяти. Из-за технических характеристик устройства были проблемы с постоянным переполнением памяти. Реализация получения подключений была оставлена через rxJava, а проигрывание трансляций было сделано через корутины.
Ограничения
Android 4.4 KitKat является достаточно старой ОС и реализация работы клиентского приложения имеет множество ограничений. Известные на данный момент ограничения:
- устройство может проигрывать один контент в одной зоне;
- проигрывает контент графический и видео контент;
- не работает в многозонном режиме;
- работа с аудиоконтентом не рекомендуется из-за избыточной нагрузки на устройство.
- снятие скриншотов с проигрываемого видео, потому что прошивка не понимает команду snapshot, которая работает с ver. 21 Android SDK. Пример команды: screencap /data/data/org.smartplayer.android.client/screenshot_1002.png. При работе с видео данная команда отправляет в качестве скриншота набор черных пикселей.


Требования к видеоконтенту
Ниже будет приведен список требований к видеоконтенту:
- Формат кодирования: H264;
- Профиль кодека: baseline
- Уровень кодека: 3.0
- Пресет кодирования: slow (обеспечивает лучшее качество при умеренной скорости обработки)
- CRF (Constant Rate Factor): 23 (обеспечивает сбалансированное качество и размер файла)
- Звук: видео должно быть без аудиодорожки
- Выходной формат: mp4