Używam previewCallback z kamery, aby spróbować przechwycić obrazy. Oto kod używamBitmapFactory.decodeByteArray() zwraca 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");
}
};
długości danych zawsze przychodzi otu taka sama jak 576000.
Również próbowałem zmianę parametrów kamery więc obraz wraca jak różne formaty. Oto, jak to wygląda, kiedy to robię.
mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat(ImageFormat.RGB_565);
mCamera.setParameters(camParam);
mCamera.setPreviewCallback(mPrevCallback);
Jednakże zarówno przy zmianie formatu podglądu a kiedy pozostawić jako jego niewypłacalności NV21, BitmapFactory.decodeByteArray wraca jako null. Próbowałem również zmienić format podglądu na typ JPEG. I nawet dostać oświadczenia debugowania w DDMS, to co mam
"D/skia (14391) --- SkImageDecoder :: Fabryka zwrócone null"
Wróciłem i kliknąłem checkmarks nex t do niektórych odpowiedzi, które tu uzyskałem. Dzięki za informacje – RyoxSinfar
Możliwy duplikat [Pobieranie klatek z obrazu wideo w systemie Android] (http://stackoverflow.com/questions/1893072/getting-frames-from-video-image-in-android) – Tim