2012-03-20 12 views
12

He estado jugando con TextureView en algunos dispositivos Android 4.0. Por ejemplo, traté de desarrollar una aplicación simple, que puede grabar el video y utiliza TextureView para su vista previa. Sin embargo, hasta donde leo los documentos API de Android, MediaRecorder estándar requiere cierta superficie para realizar la grabación de video, pero por otro lado, TextureView ya no tiene su propia superficie, por lo que parece existir una incompatibilidad entre TextureView y MediaRecorder.Cómo grabar el video usando la vista previa de la cámara en TextureView

MediaRecorder.setPreviewDisplay

TextureView

¿Alguien sabe cómo grabar vídeo utilizando MediaRecorder estándar con TextureView como su previa de la cámara? ¿O hay alguna manera de grabar videos que no sean MediaRecorder?

Muchas gracias.

Respuesta

8

De acuerdo con este problema, en Jelly Bean y superior, simplemente no llame al setPreviewDisplay(), y MediaRecorder utilizará automáticamente la vista previa utilizada por el Camera. Puedo confirmar que no llamar al setPreviewDisplay() sí funciona, al menos en Android 4.2, cuando la vista previa Camera está configurada como TextureView. Todavía no lo he probado en versiones anteriores de Android para confirmar que funciona 4.1.

Esto deja un poco de espacio, ya que los dispositivos Android 3.0-4.0 quizás no puedan usar TextureView para las vistas previas.

+0

tengo el mismo problema, mi htc one x con android 4.0 congela la pantalla cuando uso textureview como vista previa mientras trato de grabar un video con mediarecorder – xiaowoo

+0

Esto me salvó completamente la tarde. De lo contrario, no me hubiera vuelto loco. Parece que funciona en el S3, ahora va a probar con otros 3 o 4 dispositivos. –

Cuestiones relacionadas