Como capturar quadros de imagem de visualização do Aplicativo Câmera na Programação Android?

Estou escrevendo um aplicativo para capturar os quadros de visualização da câmera e convertê-lo em bitmap no Android. Aqui está o meu código:

   Camera.PreviewCallback previewCallback = new Camera.PreviewCallback()  
    { 
            public void onPreviewFrame(byte[] data, Camera camera)  
            { 
                    try 
                    { 
                            BitmapFactory.Options opts = new BitmapFactory.Options(); 
                            Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);//,opts); 
                    } 
                    catch(Exception e) 
                    {

                    } 
            } 

    }; 

    mCamera = Camera.open();
    mCamera.setPreviewCallback(previewCallback); 

Após iniciar a visualização, o retorno de chamada foi chamado com dados, mas o bitmap é nulo.

O que fiz de errado ao converter a matriz de bytes em BitMap?

questionAnswers(2)

yourAnswerToTheQuestion