Android 4.4

Материал из SmartPlayer
(перенаправлено с «Поддержка Android 4.4»)
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.
на этой странице были произведены изменения, не отмеченные для перевода.

Описание ситуации

На платформе SmartPlayer раньше создавались клиентские приложения под версии API начиная с 21 версии. Более ранние версии не поддерживались. Но, появилась задача адаптировать клиентское приложение под Android версии 4.4 и создать на нём решение, которое позволит стабильно отыгрывать простые виды трансляций. Данное решение было проработано и реализовано на практике.

Рекомендуется использовать более новые устройства, соответствующие минимальным требованиям для клиентских приложений (Android 7.0)

Логика работы

Для реализации рассматривался сценарий, который включал в себя:

  • проигрывание видео и графического контента;
  • запуск трансляции в одной зоне.

В процессе подготовки клиентского приложения на устройстве с ОС Android 4.4 использовалось клиентское приложение ver. 1.67. У этого клиентского приложения множество функций, которые нагружало «железо» старого устройства.

Проблемы при реализации

  1. У версии 4.4 есть проблемы с декодингом. При доработке был изменен декодер и процесс декодинга при низкоуровневом взаимодействии.
  2. При разработке были проработаны проблемы с сетевым взаимодействием и работой сертификатов. Для корректной работы протоколов безопасности использовалась отдельная библиотека, которая добавляла необходимые сертификаты.
  3. Проблема с утечкой памяти. Из-за технических характеристик устройства были проблемы с постоянным переполнением памяти. Реализация получения подключений была оставлена через 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