2017-01-25 23 views
0

Я работаю над мобильным приложением Android, ориентированным на визуализацию камеры в режиме реального времени (в частности, я работаю над DJI Phantom 3 Professional, относительный SDK). Я использую структуру Wikitude для части AR. Каждый образец Wikitude работает, увеличивая представление камеры на смартфоне, поэтому мне нужно перенаправить входной видеопоток. На этом этапе, используя функции DJI SDK, у меня есть объект TextureView, содержащий правильно декодированный поток, идущий от гула. Ниже приведены относительные инструкции по верхней части XML-файл текущего режима просмотра:Замените поток камеры в Wikitude ArchitectView с помощью внешнего видеопотока

<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" /> 

На самом деле, Wikitude архитектор View состоит в оказании потока камеры и оказание увеличения, как показано в на следующем рисунке: Architect View Composition

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> 

есть ли способ, чтобы заменить текущий поток камеры на Wikitude архитектор Вид ж с содержанием моего TextureView?

В качестве альтернативы, есть способ сделать поток камеры ArchitectView прозрачным фоном, чтобы наложить этот слой на TextureView?

Следующая может быть часть кода .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

Проблема, о которой вы упомянули, кажется, является проблемой с входным плагином. Попробуйте передать данные формата в формате YV12 вместо NV21. – Alex

ответ

0

Вы могли бы реализовать свой собственный Wikitude Input Plugin в сочетании с dji's Video Stream Decoding. Таким образом, вы получаете необработанные видеоданные из dji sdk и передаете их в widitude sdk. Пример кода для входного плагина можно найти в приложении примера wikitude с образцом «Пользовательская камера».