9
votes

Qu'est-ce que la surfaceLholder.surface_type_push_buffers signifie?

J'essaie d'afficher une aperçu de la caméra filtrée, à l'aide de Callback OnPreviewFrame ().

Le problème est que lorsque je supprimai cette ligne: mholder.settype (superflumed.surface_type_push_buffers);

Pour masquer l'aperçu, l'application se bloque. Le journal lit: 08-19 15: 57: 51.042: Erreur / Cameraservice (59): Enregistrer des embaucheurs a échoué avec le statut -38

Qu'est-ce que cela signifie? Est-ce documenté partout?

J'utilise le cameraPreview de l'APIDEMOS SDK: http://developer.android.com/resources/samples/apidemos/src/com/example/android/apis/graphics/camerapreview.html


0 commentaires

3 Réponses :


5
votes

Qu'est-ce que cela signifie?

Cela signifie que vous n'avez pas correctement configuré le superficiel via la surface .

est-ce documenté n'importe où?

Qu'est-ce que "ça"? Voici la documentation de superviseur , < Un href = "http://developer.androïd.com/reference/andrroid/view/surfaceholder.html" rel = "NOREFERRER"> SurfaceLolder , super_type_push_buffers et Caméra .

Si votre vraie question est "où est-il documenté que caméra nécessite superforace_type_push_buffers ", je suppose que cela est sans papiers. Vous utilisez surface_type_push_buffers pour l'aperçu de la caméra et la lecture vidéo, ainsi que d'autres situations aussi.


1 commentaires

Merci de l'attention, j'ai essayé d'utiliser un autre type de surface pour masquer la vue car je ne veux pas afficher l'aperçu de la caméra brute, mais mon propre flux traité, un peu comme cette application androidtapp.com/camera-illusion . Donc, je ne sais pas si je dois utiliser surface_type_push_buffers, comme mentionné dans ce fil: groups.google.com/group/android-developers/msg/5eee6acae3f7 c1f Si vous connaissez d'autres ressources (applications open source, livres, etc.) pouvant être utiles pour cette intention, partagez-la.



9
votes

surface_type_push_buffers génère plusieurs tampons pour la vue superficielle. Les composants sont verrouillés (remplissez de données) et appuyez sur (Données d'affichage) ces tampons au fond du code OS. Surtout OpenMax (interface de périphérique Matériel de la caméra) utilise des "tampons graphiques" = "tampons poussoirs" pour remplir des données et afficher les données. Pour être spécifique, le matériel de la caméra peut remplir directement un tampon de poussée et le matériel graphique peut afficher directement un tampon de poussée (ils partagent ces tampons). Conclusion: le système d'exploitation vous oblige à créer une vision de surface avec des tampons poussés. Ensuite, il peut utiliser les tampons pour le périphérique de la caméra.


0 commentaires

8
votes

dans Guide de la caméra de Google Vous pouvez trouver une brève mention de cette . Selon le guide surface_type_push_buffers code> est un paramètre obsolète nécessaire aux périphériques pré-3.0.

Regardez dans l'exemple de code dans la section "Création d'une classe d'aperçu" au bas du constructeur, il est indiqué: P>

// deprecated setting, but required on Android versions prior to 3.0
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);


0 commentaires