Как вставлять текст во время записи видео в Android?

Моя цель – записать видео в Android с секундомером, встроенным в него во время записи.

Я последовал за образцами проекта Grafika , CameraCaptureActivity.java, где они используют OpenGL 2.0 для записи небольшого блока вместе с записью видео. Они используют следующий код для рисования блока в OpenGL 2.0

private static void drawExtra() { GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); GLES20.glEnable(GLES20.GL_SCISSOR_TEST); GLES20.glScissor(0, 0, width / 3, height / 3); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); GLES20.glDisable(GLES20.GL_SCISSOR_TEST); } 

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

Я хочу, чтобы нарисовать текст над этой белой коробкой, используя OpenGL 2.0, чтобы она также записывалась вместе с видео.

Я не знаю о OpenGL 2.0. Нужна помощь, чтобы просто нарисовать текст на той же поверхности, где записывается видео, чтобы он был встроен в него точно так же, как белый ящик.

Вы можете попробовать Intel INDE на https://software.intel.com/en-us/intel-inde и Media Pack для Android, который является частью INDE, учебники на https://software.intel.com/en-us / Articles / intel-inde-media-pack-for-android-tutorials . Он имеет образец эффекта TextOverlayEffect для размещения текста на видео

Это не относится к MediaCodec. Рисование текста в OpenGL – довольно обычная вещь, которую вы хотите сделать. Обычный подход заключается в том, чтобы сделать текст с движком шрифтов (например, Skia) текстуре, а затем визуализировать текстуру.

Android Breakout использует этот подход: он отображает фиксированный набор строк в текстуру, а затем отображает из этой текстуры. Большинство строк являются целыми («игра над»), но цифры цифр обрабатываются индивидуально. См., В частности, этот класс .

Если ваш набор символов ограничен, и вы не слишком в восторге от кернинга (например, текст ASCII на английском языке получается довольно неплохо), вы можете просто визуализировать персональные символы и затем извлекать из них. Версия 1.1. Инструмента «screenrecord» делает это. (Обратите внимание, что это реализовано на C ++ .)

Вы можете видеть как на работе в этом видео . Начальная страница текста и строка текста в верхней части экрана накладываются на screenrecord, когда видео записывается, набирается по одному символу за раз. «Готов?» Сообщение с тэгом отбрасывается игрой из одной строки. (Меню отображаются только с помощью платформы Android.)

Лучше всего найти библиотеку, которая сделает это за вас, и имеет дружественную лицензию с открытым исходным кодом.