Sto utilizzando l'anteprima della fotocamera dalla fotocamera per provare ad acquisire immagini. Ecco il codice che sto usandoBitmapFactory.decodeByteArray() restituisce 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 lunghezza dei dati viene sempre otu lo stesso 576000.
Inoltre ho provato a cambiare i parametri della fotocamera in modo l'immagine ritorna formati come differenti. Ecco come appare quando lo faccio.
mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat(ImageFormat.RGB_565);
mCamera.setParameters(camParam);
mCamera.setPreviewCallback(mPrevCallback);
Comunque sia quando cambio il formato di anteprima e quando lo lascio come il suo predefinito di NV21, BitmapFactory.decodeByteArray ritorna come nullo. Ho anche provato a cambiare il formato di anteprima in tipo JPEG. Ho anche ottenere una dichiarazione di debug nelle DDMS, questo è ciò che ottengo
"D/skia (14391): --- SkImageDecoder :: fabbrica restituito null"
Sono tornato indietro e ho fatto clic sui segni di spunta t ad alcune delle risposte che ho ottenuto qui. Grazie per le informazioni – RyoxSinfar
Possibile duplicato di [Ottenere frame da Immagine video in Android] (http://stackoverflow.com/questions/1893072/getting-frames-from-video-image-in-android) – Tim