BitmapFactory.decodeByteArray () está retornando NULL
Estou usando o previewCallback da câmera para tentar capturar imagens. Aqui está o código que estou usando
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" );
}
};
o comprimento dos dados sempre é igual ao 576000.
Também tentei alterar os parâmetros da câmera para que a imagem retorne em diferentes formatos. Aqui está o que parece quando eu faço isso.
mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat( ImageFormat.RGB_565 );
mCamera.setParameters( camParam );
mCamera.setPreviewCallback( mPrevCallback );
No entanto, tanto quando altero o formato de visualização quanto o deixo como o padrão do NV21, o BitmapFactory.decodeByteArray volta como nulo. Também tentei alterar o formato de visualização para o tipo JPEG. Eu até recebo uma instrução de depuração nos ddms, é isso que recebo
"D / skia (14391): --- SkImageDecoder :: Factory retornou nulo"