2017-01-25 2 views
0

Je travaille sur une application mobile Android orientée vers la visualisation en temps réel augmentée de la vue de caméra d'un drone (en particulier je travaille sur un DJI Phantom 3 Professional avec relatif SDK). J'utilise le framework Wikitude pour la partie AR. Chaque exemple de Wikitude fonctionne en augmentant la vue de la caméra du smartphone, donc j'ai besoin de rediriger le flux vidéo d'entrée. A ce stade, en utilisant les fonctionnalités DJI SDK, j'ai un objet TextureView contenant le flux décodé correctement provenant du drone. Voici les instructions relatives à la partie supérieure du fichier .xml de vue actuelle:Remplacer le flux de la caméra dans un Wikitude ArchitectView avec un flux vidéo externe

<TextureView 
    android:id="@+id/video_previewer_surface" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:layout_centerHorizontal="true" 
    android:layout_above="@+id/linearLayout" /> 

En fait, Wikitude Architect View est composé par le rendu du flux de la caméra et le rendu de l'augmentation, comme le montre le figure ci-dessous: Architect View Composition

fichier sample_cam.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 

    <com.wikitude.architect.ArchitectView 
     android:id="@+id/architectView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
</LinearLayout> 

Est-il possible de remplacer le flux actuel de la caméra de l'architecte Wikitude Voir w avec le contenu de mon TextureView?

Alternativement, existe-t-il un moyen de rendre le flux de caméra de ArchitectView comme arrière-plan transparent, afin de superposer cette couche à la couche TextureView?

Ce qui suit pourrait être une partie du code du fichier final .xml:

<TextureView 
    android:id="@+id/video_previewer_surface" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:layout_centerHorizontal="true" 
    android:layout_above="@+id/linearLayout" /> 
<com.wikitude.architect.ArchitectView // with transparent background for camera 
    android:id="@+id/architectView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 
+0

Le problème que vous avez mentionné semble être un problème avec le plugin d'entrée. Essayez de transmettre les données de trame formatées YV12 au lieu de NV21. – Alex

Répondre

0

Vous pouvez mettre en œuvre votre propre Wikitude Input Plugin en combinaison avec dji's Video Stream Decoding. Vous obtenez ainsi les données vidéo brutes du dji sdk et les transmettez au wikitude sdk. Vous trouverez un exemple de code pour le plugin d'entrée dans l'exemple d'application wikitude avec le nom d'échantillon "Custom Camera".