如何从Firebase存储中获取.gltf 3D模型到Android应用程序以进行实时渲染?

时间:2018-12-31 08:58:12

标签: java arcore sceneform

我有一个关于Firebase存储的模型,想在我的AR应用程序中实时渲染它。以下是我的存储参考:

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

我尝试在以下代码中将storageRef.toString()作为模型(Uri)直接传递,以构建modelrenderable:

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;
        }
    };

而且,它没有用。它提供了IllegalArgumentException:无法解析url,MalformedURLException:未知协议:内容。

然后我尝试使用Callable和InputStream传递Uri(在阅读this之后),请检查以下内容:

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形式传递(Uri)modelDownloadTask.call()。但是,现在它显示以下错误:

{{1}}

请帮助!!!如何获得模型的Uri以在我的AR应用程序中实时传递和渲染模型?

0 个答案:

没有答案