Как создать плагин stagefright

У меня есть задача, которая включает интеграцию видеодекодера в Stagefright (мультимедийная инфраструктура Android). Я искал и нашел следующее о создании нового плагина для Stagefright :

Чтобы добавить поддержку нового формата, вам необходимо:

  static const CodecInfo kDecoderInfo[] = { {MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.decode"}, {MEDIA_MIMETYPE_AUDIO_AAC, "AACDecoder"}, }; 

Вышеприведенные данные – все, что я могу узнать в сети. Прямо сейчас у меня есть простое приложение, которое возьмет файл в качестве ввода и отобразит его на экране с помощью встроенного API в Android. Может кто-нибудь, пожалуйста, скажите мне, как двигаться дальше. И откуда все эти OMXCodec.cpp и другие приходят в картину, и в какой директории моего проекта я должен иметь их. Просьба представить решения относительно того же. Заранее спасибо.

Из вашего вопроса, похоже, вы смотрите на рекомендацию, характерную для Ice-Cream Sandwich или более ранних версий Android. Первое, о чем вам следует знать, это версия андроида, например, Ice-Cream Sandwich или раньше или JellyBean и после. Интеграция кодеков отличается от разных версий Android.

Я уже прокомментировал ваш другой вопрос, который специфичен для JellyBean и более поздних JellyBean (Ссылка: Android: как интегрировать декодер в мультимедийную инфраструктуру )

Если вы хотите интегрировать свой кодек в Ice-Cream Sandwich или ранее, шаги уже доступны в вашем вопросе. Помимо добавления декодера в список kDecoderInfo , вы можете настроить некоторые причуды, как показано здесь .

На вопрос о OMXCodec.cpp вы можете найти этот файл в frameworks/base/media/libstagefright/ в случае Ice-Cream Sandwich и frameworks/av/media/libstagefright/ в случае JellyBean .

Если вы выполнили все шаги по интеграции видеодекодера в среду Stagefright , самым простым тестом было бы выполнить следующее:

  1. Скопируйте мультимедийный файл на SD-карту

  2. В OMXCodec.cpp включите журналы, удалив комментарий в этом операторе //#define LOG_NDEBUG 0 и запустите mm в каталоге. Скопируйте восстановленный libstagefright.so в /system/lib на ваше устройство.

  3. Включите logcat и начните logcat журналов.

  4. Откройте галерею, выберите свой файл и разрешите стандартным проигрывателям проигрывать файл.

  5. Проверьте файл журнала, если игрок выбрал ваш компонент OMX поиск имени вашего компонента. Если будет найден, ваша интеграция кодека в Stagefright будет успешной. Иначе вам придется отлаживать и выяснять, в чем проблема.

Постскриптум:

  1. Исходя из ваших запросов, я полагаю, вы не знакомы с Android-источниками. Пожалуйста, обратитесь к сайту androidxref, чтобы ознакомиться с дистрибутивами AOSP .

  2. Если вы не планируете поддерживать новый формат медиафайла, вам не потребуется поддерживать класс Extractor . MediaExtractor абстрагирует парсер формата файла и помогает MediaExtractor разные дорожки в медиафайле.

Надеюсь, что с этой информацией вы сможете интегрировать и использовать свой кодек в Android.

Intereting Posts
Android: используйте значок в качестве кнопки «Назад», не перезагружая предыдущую активность. Gradle не может разрешать зависимости при создании проекта Android Studio Как избежать черного экрана перед запуском? Центрирование текстового изображения Ниже кнопки изображения, которая находится под относительным расположением? Как программно анимировать ImageView OnPageFinished запускается до загрузки страницы Роль адаптеров в шаблоне Mvp? Способ получить разблокировку в андроиде? Как я могу заставить приложение app.iml оставаться стабильным при перестройке проекта Android Studio? Установите модуль в опции «Редактировать конфигурации» в программе intelliJ / Android Studio? Как проверить, включена ли отладка usb, программно? Панель навигации становится прозрачной при открытии клавиатуры Как реализовать контекстное меню при нажатии клавиши, а не длительный щелчок / нажатие Есть ли 2D Game Engine лучше, чем Libgdx? Не удалось записать файлы на sdcard android