Estoy usando la previewCallback de la cámara para intentar capturar imágenes. Aquí está el código que estoy utilizandoBitmapFactory.decodeByteArray() devuelve NULL
private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback()
{
public void onPreviewFrame(byte[] data, Camera Cam) {
Log.d("CombineTestActivity", "Preview started");
Log.d("CombineTestActivity", "Data length = "
+ data.length);
currentprev = BitmapFactory.decodeByteArray(data, 0,
data.length);
if(currentprev == null)
Log.d("CombineTestActivity", "currentprev is null");
Log.d("CombineTestActivity", "Preview Finished");
}
};
la longitud de los datos siempre viene OTU lo mismo que 576000.
También he intentado cambiar los parámetros de la cámara para que la imagen se vuelve tan diferentes formatos. Esto es lo que parece cuando hago eso.
mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat(ImageFormat.RGB_565);
mCamera.setParameters(camParam);
mCamera.setPreviewCallback(mPrevCallback);
Sin embargo, tanto cuando se cambia el formato de la vista y cuando lo dejo como su valor predeterminado de NV21, BitmapFactory.decodeByteArray vuelve nula. También intenté cambiar el formato de vista previa al tipo de JPEG. Incluso consigo una declaración de depuración en las DDM, esto es lo que me pasa
"D/skia (14391): --- SkImageDecoder :: fábrica devuelve null"
Volví y hice clic en las marcas de verificación nex a algunas de las respuestas que he obtenido aquí. Gracias por la información – RyoxSinfar
Posible duplicado de [Obtener marcos de la imagen de video en Android] (http://stackoverflow.com/questions/1893072/getting-frames-from-video-image-in-android) – Tim