Cómo grabar la pantalla de actividad de la webview con Android MediaCodec?

Tengo la tarea de registrar la actividad del usuario en una webview, en otras palabras, necesito crear un archivo de video mp4 mientras el usuario navega en una vista web. Bastante desafiante 🙂 I fuente que en Android 4.3 introdujo MediaCodec: se amplió para incluir una forma de proporcionar la entrada a través de una superficie (a través del método createInputSurface). Esto permite que la entrada provenga de la previsualización de la cámara o del renderizado de OpenGL ES. Incluso encuentro un ejemplo donde puedes grabar un juego escrito en opengl: http://bigflake.com/mediacodec/

Mi pregunta es: ¿cómo puedo grabar una actividad de webview? Supongo que si pudiera dibujar el contenido de la webview a la textura opengl, que todo estaría bien. Pero no sé cómo hacer esto.

¿Puede alguien ayudarme con esto?

¿Por qué no intentar WebView.onDraw primero, en lugar de usar OpenGL? Este último enfoque puede ser más complicado, y no es compatible con todos los dispositivos.

Una vez que usted será capaz de obtener las capturas de pantalla, entonces usted puede crear el vídeo ( para crear el vídeo de la secuencia de imágenes en android ), una tarea separada donde mediacodec debería ayudar.

"Supongo que si pudiera dibujar el contenido de la webview a la textura opengl".

Es posible.

SurfaceTexture es básicamente su punto de entrada en la capa de OpenGL. Se inicializa con un ID de textura de OpenGL y realiza todo su renderizado en esa textura.

Los pasos para hacer que su vista sea opengl:

1.Inicializar una textura de OpenGL

2.Within un contexto OpenGL construir una SurfaceTexture con el ID de textura. Utilice SurfaceTexture.setDefaultBufferSize (int width, int height) para asegurarse de tener suficiente espacio en la textura para que la vista se procese.

3.Create una superficie construida con SurfaceTexture anterior.

4. En el onDraw de la vista, use el lienzo devuelto por Surface.lockCanvas para hacer el dibujo de la vista. Obviamente puede hacer esto con cualquier vista, y no sólo con WebView. Además Canvas tiene un montón de métodos de dibujo, lo que le permite hacer cosas funky, funky.

El código fuente se puede encontrar aquí: https://github.com/ArtemBogush/AndroidViewToGLRendering Y usted puede encontrar algunas explicaciones aquí: http://www.felixjones.co.uk/neo%20website/Android_View/

  • Activar opción de zoom en WebView Android
  • HTML localStorage es nulo en Android cuando se usa webview
  • Cómo conseguir la geolocalización que trabaja en la aplicación móvil titanium del appcelerator con el android webview
  • Alcanzar el límite de ancho de banda para ver archivos pdf en WebView a través de Google Docs
  • Android: gran aumento de tamaño de apk cuando se utiliza el navegador de cruce de peatones
  • Android CustomWebChromeClient openFileChooser Cambiar el tamaño de la imagen antes de subir
  • Método restorePicture de WebView - Impedir que la vista web vuelva a cargar la página
  • WebView causando TypeError no capturado al cargar www.google.com
  • Android: dibujo a un lienzo PDF desde WebView
  • Cómo obtener URL de enlace en Android WebView con HitTestResult para una imagen vinculada (y no la URL de imagen) con Longclick
  • "Hola, WebView" tutorial abre la dirección solicitada en el navegador de Android y no en mi webview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.