Captura de video ignorando el dilema EXTRA_OUTPUT
Estoy teniendo un cerdo de un tiempo que crea una característica básica de la captura video en mi uso. Quiero llamar a la herramienta de captura de vídeo por defecto de mi dispositivo y tenía el archivo guardado en una ubicación específica.
De la documentación esto se logra proporcionando un Uri en EXTRA_OUTPUT, sin embargo lo que está ocurriendo es que se está ignorando completamente y el video se está escribiendo en realidad a la ubicación del almacén de medios habitual.
- Aplicación de ejemplo de Android Video Capture
- Video llamada usando android
- Android: Grabar actividad de la pantalla
- SetOutputFormat llamado en un estado no válido: 4 (dónde y por qué)
- Cómo obtener el tamaño de archivo de grabación de video en vivo en Android?
Mi código es muy simple:
Intent i = new Intent( android.provider.MediaStore.ACTION_VIDEO_CAPTURE ); String SD_CARD_TEMP = Environment.getExternalStorageDirectory() + File.separator + MEDIA_TEMP ; i.putExtra( android.provider.MediaStore.EXTRA_OUTPUT, Uri.parse(SD_CARD_TEMP) ); startActivityForResult( i, ACTIVITY_CAPTURE_VIDEO );
La constante MEDIA_TEMP se establece en 'media_temp'. También he intentado usar un archivo en lugar de una cadena y usar Uri.fromFile () pero eso no hizo ninguna diferencia.
Si alguien tiene alguna idea de por qué este código no se está comportando como los docs dicen que debería .. por favor dígame 🙂
PD. El desarrollo se lleva a cabo en vivo en HTC Desire HD, no emulador ..
Gracias,
Dave
- Captura de vídeo de la pantalla de Android
- Android: ¿Alguien sabe cómo capturar video?
- Captura de vídeo de aplicaciones desde un dispositivo Android
- Procesamiento de vista previa de Android mientras graba video
- Grabación de vídeo android con límite de duración y baja calidad
- Android: Añadir efectos de superposición de color en vídeo durante la captura de vídeo
Tengo el mismo problema. Funciona en Android de stock, pero no funciona en dispositivos HTC o SonyEricsson.
Parece como si su cam-app se comporta de forma diferente a la predeterminada.
Creo que la única posibilidad sería pedirle al proveedor de medios el último video grabado y obtener el camino de él. A continuación, copie el archivo en su propio directorio y elimínelo del proveedor de medios.
No es muy inteligente y propenso a errores, pero quizás la única manera.
¿Alguien tiene una idea mejor?
Después de pasar 13 horas tratando de averiguar qué estaba pasando con esta cámara API …
Yo estaba usando la intención de la cámara y EXTRA_OUTPUT para especificar dónde guardar el archivo, y se estaba ignorando!
Esta aplicación funcionó unas semanas antes, y no había actualizaciones de SO había ocurrido en ese momento ..
Puedo haber descubierto la fuente del problema:
Si hay alguna aplicación instalada en el teléfono que interactúa con, o interceptar la API de la cámara, algunos de los API puede romper!
Descubrí esto después de un maratón de depuración de 13 horas, probando todas las posibles combinaciones de API y siguiendo todas las sugerencias de stackoverflow.
Mis manos se estaban cansando sosteniendo el teléfono, así que construí un soporte telefónico fuera de un colgador para anclar el teléfono a mi escritorio, con la cámara apuntando a un tarro de mantequilla de maní.
En un golpe de suerte, cuando estaba depurando con mis fotos de mantequilla de maní, la Google Goggles App apareció una notificación diciendo que había "reconocido" algo en mi imagen!
Esto me incitó a desinstalar IMMEDIATAMENTE goggles de google, y de repente, las imágenes empiezan a guardar a mi Uri personalizado como solían !!!
Esto fue en un Samsung Stratosphere.
Estoy haciendo algo similar en el nexo uno y funciona, pero el mismo código no funciona en el aria htc. Por lo que es probablemente algo que ver con las actividades que realmente se ejecutan en los diferentes dispositivos y si respetan ese parámetro o no.