2017-04-20 4 views
0

lecture des entrées-cadres de méthode de rappel PreviewHighSpeedCamera onCaptureCompleted() en utilisant Camera2Lecture des entrées-cadres de méthode de rappel PreviewHighSpeedCamera onCaptureCompleted() à l'aide Camera2

Nous essayons de mettre en avant-première de la caméra pour plus de 120fps-à-dire PreviewSessionHighSpeed ​​en utilisant l'API de Camera2, ci-dessous est l'extrait de code

private void updatePreview() { 

    if (null == mCameraDevice) { 
     return; 
    } 

    try { 

     setUpCaptureRequestBuilder(mPreviewRequestBuilder); 
     HandlerThread thread = new HandlerThread("CameraPreview"); 
     thread.start(); 
     List<CaptureRequest> mPreviewBuilderBurst = mPreviewHighSpeedCamera.createHighSpeedRequestList(mPreviewRequestBuilder.build()); 

     mPreviewHighSpeedCamera.setRepeatingBurst(mPreviewBuilderBurst, new CameraCaptureSession.CaptureCallback(){ 
      @Override 
      public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { 

       super.onCaptureCompleted(session, request, result); 

       // We want to read the captured image buffer here 
       // We tried to use ImageReader but highSpeedCameraSession doesnnot support ImageReader surface 
       // HighSpeedcameraSession only supports preview or recording surface 
      } 

     }, mBackgroundHandler); 

    } catch (Exception e) { 

     e.printStackTrace(); 

    } 
} 

Nous sommes en mesure de mettre en image d'aperçu de la caméra pour PreviewSessionHighSpeed, mais pas en mesure d'obtenir un tampon de trame après OnCaptureComplete().

Quelqu'un sait comment obtenir le tampon de trame après OnCaptureCompete()?

Merci à l'avance

Répondre

0

La session d'enregistrement à haute vitesse limitée est très contraint (donc le nom); il n'y a pas de prise en charge de l'accès des applications aux données à haute fréquence d'images - il ne peut être envoyé qu'à l'encodeur vidéo. L'aperçu est également à seulement 30 images par seconde, de sorte qu'un SurfaceTexture ne peut pas être utilisé ici pour obtenir des données à haute vitesse.

Seuls les périphériques qui affichent des fréquences d'images élevées dans leurs plages FPS cibles standard prennent en charge des sorties plus flexibles; à ce jour, je ne suis pas au courant de tels dispositifs. L'enregistrement haute vitesse est aujourd'hui très à la pointe des capacités de téléphonie mobile.