Запись всего экрана, включая предварительный просмотр фронтальной камеры


Я написал небольшую игру. В нем реализован предварительный просмотр передней камеры. Я хочу иметь возможность записывать весь экран в формате mp4. Как бы я это сделал? Кто-нибудь знает хороший учебник для записи всего экрана в mp4 (в коде, так что не только скриншоты.. Я хочу, чтобы пользователь мог сделать запись, играя в игру).

2 4

2 ответа:

Приложениям не разрешается захватывать содержимое экрана (см.это обсуждение ).

[5]} [L]приложения etting захватывают содержимое экрана либерально-это серьезный риск для безопасности, поэтому платформа предотвращает его (создание моментального снимка требует либо прямых физических манипуляций со стороны пользователя, либо использования инструмента отладки).

И как @CommonsWare упоминал в своем комментарии, вы не можете использовать метод getDrawingCache Ни для захвата Bitmap из View, Если вы используете SurfaceView или один из его потомков (например, VideoView). Подробнее об этом здесь .

Действительно, как заявил @Michael, прямой доступ к механизмам скриншота и буфера кадров невозможен. Это не означает, что вам полностью не повезло, хотя, если вы хотите записывать игровые сессии. Это просто больше работы.

Если вы создадите идеальную запись различных действий в вашей игре, сохраните эту запись. Затем вы можете создать службу (веб-службу, локальную службу, любую другую), которая принимает запись в качестве входных данных. По сути, он бы переиграл игру. Ты бы тогда ... реконструируйте игру таким образом, чтобы вы могли сгенерировать видео.

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