samsung - grabar pantalla android sin app
Captura de video de la pantalla de Android (17)
Olvídese de las capturas de pantalla, ¿es posible capturar un video de la aplicación en ejecución en Android? Raíz o no arraigada, no me importa, quiero al menos 15 fps.
Actualización: No quiero ningún hardware externo. La intención es hacerlo perfectamente portátil y cada fotograma se captura dentro del sistema operativo Android. Si cruza los límites de la aplicación SDK, estoy dispuesto a ir a las modificaciones del nivel del sistema operativo, pero necesitaría un punto de partida.
@taranfx, sin más información, supongo que ya estás en que tienes las herramientas de desarrollo de Android instaladas. Si es así, puede ejecutar el emulador y luego usar uno de los muchos programas de captura de pantalla del escritorio para capturar su aplicación en ejecución. Screenflow en la Mac funciona muy bien para hacer esto. Estoy seguro de que hay muchos buenos programas de captura de pantalla si está en Windows o en una plataforma Nix y sé que también hay algunos servicios en línea, pero no tengo ningún enlace ni los he usado. Aquí hay un enlace para el documento de referencia sobre la configuración y ejecución del emulador. El SDK de Android incluye un emulador de dispositivo móvil ...
AirPlay Mirroring y Screen Recording ahora están en CyanogenMod con Mirror APK (Beta).
Android 4.3 tiene una nueva API MediaCodec que se puede usar para grabar desde una superficie. Consulte: http://developer.android.com/about/versions/android-4.3.html (desplácese hacia abajo hasta la sección "Codificación de video desde una superficie")
Echa un vistazo a Remote Manager . Pero me parece que no funciona correctamente con dispositivos que tienen pantalla grande. Aunque, puedes probar DEMO antes.
En Android Lollipop (5) se ha agregado una nueva función que permite la captura de pantalla que se explica aquí.
Llama a startActivityForResult como este
startActivityForResult(mProjectionManager.getScreenCaptureIntent(), PERMISSION_CODE);
Luego captura el resultado
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != PERMISSION_CODE) {
Log.e(TAG, "Unknown request code: " + requestCode);
return;
}
if (resultCode != RESULT_OK) {
Toast.makeText(this,
"User denied screen sharing permission", Toast.LENGTH_SHORT).show();
return;
}
mMediaProjection = mProjectionManager.getMediaProjection(resultCode, data);
mVirtualDisplay = createVirtualDisplay();
}
Es posible grabar video en pantalla directamente desde su teléfono o tableta si su dispositivo está enraizado. Estoy trabajando en la aplicación SCR Screen Recorder . Según mi conocimiento, esta es la única aplicación que admite dispositivos Tegra (incluido Nexus 7) y Android 4.2. En este momento, la aplicación registra entre 9 y 18 fps según el dispositivo, pero estoy trabajando para mejorar eso. SCR Screen Recorder aún se encuentra en fase de prueba beta, así que siéntase libre de probarlo y comentar.
Esto es viejo, pero ¿qué pasa con ASC ?
Los dispositivos Android 4.4 (KitKat) y superiores tienen una utilidad de shell para grabar la pantalla del dispositivo Android. Conecte un dispositivo en modo desarrollador / depuración ejecutando KitKat con la utilidad adb a través de USB y luego escriba lo siguiente:
adb shell screenrecord /sdcard/movie.mp4
(Press Ctrl-C to stop)
adb pull /sdcard/movie.mp4
La grabación de pantalla está limitada a un máximo de 3 minutos.
Referencia: https://developer.android.com/studio/command-line/adb.html#screenrecord
Mi sugerencia es también utilizar un grabador de pantalla, como SMRecorder. En lugar de usar el emulador, que es lento, especialmente para juegos y cosas de las que querría un video, recomiendo usar una VM VirtualBox, con Android instalado. Puede conectar el depurador Dalvik a él y depurar su aplicación allí. Si el depurador ralentiza su aplicación demasiado, desconéctelo para grabar el video. Hay muchos enlaces que explican cómo configurar la VM de Android para la depuración. Lo encuentro mucho mejor que el emulador. Ahora esto no se ocupa de capturar pantallas directamente en el dispositivo, en caso de que su aplicación use el acelerómetro, o la cámara que no está disponible en la PC. Para eso usaría la aplicación de Android Market mencionada anteriormente.
No he usado la aplicación, pero he visto Rec. referenciado como una forma de hacer esto, pero necesita rootear el teléfono.
No lo implementé, pero todavía te estoy dando una idea para hacer esto.
En primer lugar obtener el código para tomar una captura de pantalla del dispositivo Android . Y llame a la misma función para crear imágenes después de un intervalo de veces. Agregue y luego encuentre el código para crear video a partir de cuadros / imágenes .
Editar
También vea este enlace y modifíquelo de acuerdo con la dimensión de su pantalla. Lo principal es dividir su trabajo en varias tareas pequeñas y luego combinarlo según sus necesidades.
FFMPEG es la mejor manera de hacer esto. Pero una vez lo he intentado pero es un procedimiento muy largo. Primero debe descargar cygwin y la biblioteca Native C ++ y muchas cosas y conectarse, luego puede trabajar en FFMPEG (está construido en C ++).
Sé que esta es una pregunta antigua, pero como parece que no está respondida a gusto de los OP. Hay una aplicación que cumple esto en el enlace de Screencast de Android Market
Sí, use un teléfono sin video y use una grabadora de video para capturar la transmisión
Ver este artículo http://graphics-geek.blogspot.com/2011/02/recording-animations-via-hdmi.html
Si desea grabar la navegación del usuario para poder probar la interfaz de usuario y otras cosas, le recomiendo que use TestFairy
Le permite enviar la apk a algunos usuarios de prueba por correo electrónico y ver un video con todas las sesiones en la aplicación e incluso las fallas de la aplicación y las estadísticas del dispositivo.
Si está desarrollando aplicaciones de cámara de video, será bueno conocer la API que se usará para la captura de video:
http://developer.android.com/training/camera/videobasics.html
(El enlace anterior solo muestra cómo se puede hacer la grabación de video a través del envío de Intención, no cómo se realiza la grabación real)
https://www.linux.com/learn/tutorials/729988-android-app-development-how-to-capture-video
y si quieres escribir tú mismo la aplicación adb "record de pantalla":
Y la acción clave de grabación se realiza aquí:
static status_t recordScreen(const char* fileName) {
status_t err;
<...>
// Configure, but do not start, muxer.
sp<MediaMuxer> muxer = new MediaMuxer(fileName,
MediaMuxer::OUTPUT_FORMAT_MPEG_4);
if (gRotate) {
muxer->setOrientationHint(90);
}
// Main encoder loop.
err = runEncoder(encoder, muxer);
if (err != NO_ERROR) {
encoder->release();
encoder.clear();
return err;
}
Para el teléfono Samsung hay configuraciones adicionales (''cam_mode'' hack):
La resolución de CamcorderProfile.QUALITY_HIGH produce un video verde parpadeante
Más enlaces útiles:
Si está en una PC, puede ejecutar My Phone Explorer en la PC, MyPhoneExplorer Client en el teléfono, configurar la captura de pantalla para que se actualice continuamente y usar Wink para capturar un área rectangular personalizada de su pantalla sobre la ventana de My Phone Explorer Con tu propia tasa de captura. Luego convierta a un FLV en Wink, luego convierta de video Flash a MPG con WinFF .
Supongo que el screencast no es una causa de la incompatibilidad de Tegra 2, ya lo probé, ¡pero no suero! Así que intenté usar Z-ScreeNRecorder del mercado, lo instalé en mi LG Optimus 2x, pero la única pantalla en blanco de la grabación, lo intenté durante 5 minutos. y ahí llego 5min. de un archivo de pantalla en blanco de 6 mb de tamaño ... ¡así que no tiene sentido intentarlo hasta que liberen un software de paz que sea compatible con el conjunto de chips tegra2!