Как получить 3D-модели.gltf из хранилища Firebase в Android-приложение для рендеринга в реальном времени?

У меня есть модель в хранилище Firebase, и я хочу, чтобы она отображалась в реальном времени в моем приложении AR. Вот моя ссылка на хранилище:

private FirebaseStorage storage = FirebaseStorage.getInstance();
private StorageReference storageRef = storage.getReferenceFromUrl("gs://show-b8129.appspot.com/Mesh_Beagle.gltf");

Я попытался передать storageRef.toString() напрямую как модель (которая является Uri) в следующем коде для построения модели:

ModelRenderable.builder().setSource(fragment.getContext(), RenderableSource.builder().setSource(fragment.getContext(), model, RenderableSource.SourceType.GLTF2).setScale(0.01f).build()).setRegistryId(model).build()

И это не сработало. Это дало IllegalArgumentException: Невозможно проанализировать URL, MalformedURLException: неизвестный протокол: содержание.

Затем я попытался использовать Callable и InputStream для передачи Uri(после прочтения этого), проверьте следующее:

Callable modelDownloadTask = new Callable() {
@Override
public InputStream call() throws Exception {
FileInputStream fileInputStream = null;
try {
      fileInputStream = new FileInputStream(storageRef.toString());
    } catch (FileNotFoundException e) {
                e.printStackTrace();
       }
            return fileInputStream;
        }
    };

И, передав (Uri) modelDownloadTask.call() в качестве Uri. Но теперь он показывает следующую ошибку:

W/System.err: java.io.FileNotFoundException: gs:/show-b8129.appspot.com/Mesh_Beagle.gltf (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:231)
        at java.io.FileInputStream.<init>(FileInputStream.java:165)
        at java.io.FileInputStream.<init>(FileInputStream.java:112)

Пожалуйста помоги!!! Как заставить Uri модели передавать и отображать модель в реальном времени в моем приложении AR?

0 ответов

Другие вопросы по тегам