Запись анимации SurfaceView в виде видеофайла в Android - PullRequest
0 голосов
/ 23 мая 2018

В прошлый раз, когда я исследовал экспорт видео на Android ( Добавление растрового изображения водяного знака поверх видео в Android: 4.3 MediaMuxer или ffmpeg ), это была непростая задача.

Вотсценарий: у меня есть SurfaceView и нарисованный BitMap в координатах x, y.Пользователь нажимает на изображения и перетаскивает их к шагу 2 и шагу 3.

enter image description here

Так что, в основном, если я записываю все x, y, через которыекасание прошло, я могу воспроизвести анимацию, нарисовав BitMap с определенной частотой кадров.

Теперь возникает вопрос: есть ли простой способ записать «анимацию» из SurfaceView в видеофайл с помощью Androidкомпоненты (без ffmpeg)?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Поскольку вы выполняете рендеринг, вы можете просто рендерить его дважды: один раз на дисплей, один раз на видео.Это предполагает, что вы только хотите содержимое SurfaceView ... если вам нужны и другие виды, тогда вам нужно использовать подход записи экрана.

Рабочий пример см. В разделе «Запись».GL App "в Графика .Для API 21+ вы можете выполнить рендеринг на поверхность MediaRecorder , что, вероятно, будет проще, если вы просто захотите файл .mp4.

0 голосов
/ 11 июня 2018

Насколько я знаю, чтобы записать события SurfaceView, вы должны записать экран, поскольку SurfaceView отличается и не рисует в иерархии обычного вида.

ВНа самом деле, есть случаи, когда отображаемые данные для SurfaceView даже не доступны процессору приложения - это может быть выходной сигнал аппаратного видеопотока, который объединен с выводом изображения процессора приложения через выделенное наложение видео. Группы Google

Творческим способом может быть одновременный захват экрана во время события и создание MOV из растровых изображений.Пожалуйста, смотрите: Создание видео из снимка экрана

...