2016-01-01 1 views
3

Je suis confronté à un problème où j'utilise un ImageReader en plus d'avoir un SurfaceView qui est utilisé pour montrer la sortie de l'appareil photo. J'ai ajouté le SurfaceView lui-même et la surface de la ImageReader comme celui-ci (et a ajouté les auditeurs de ImageReader afin de recevoir des événements sur les nouvelles images):ImageReader rend décalage caméra

preview.addTarget(_surfaces.get(1)); //ImageReader surface 
preview.addTarget(_surfaces.get(0)); //SurfaceView of the layout 

Cependant, si je retire la ImageReader l'application fonctionne bien (pas de retard de la caméra). Mais dès que la surface ImageReader est ajoutée, la caméra est en retard. Quelqu'un a des idées pour rendre la caméra plus fluide? Le ImageReader est créé comme ceci: (?)

reader = ImageReader.newInstance(640, 480, ImageFormat.JPEG, 1); 

je suppose que le retard pourrait être dû à ce que l'image doit être rendue deux fois, à la fois sur la SurfaceView de la mise en page et la ImageReader se

Répondre

4

Il s'avère que le problème est le ImageFormat du ImageReader. Changer le ImageFormat.JPEG pour par exemple ImageFormat.YUV_420_888 a résolu le problème de retard.

+0

Étonnamment cela n'a pas fonctionné pour moi. Sur des appareils pas aussi haut de gamme, même YUV_420_888 introduit un décalage notable, ce qui n'était pas le cas avec Camera v1. –

+0

A travaillé pour moi .. merci !! – Nullpoet