如何在3D模型后面将视频叠加到SceneView的背景上?

时间:2019-08-01 08:25:23

标签: android augmented-reality arcore sceneform sceneview

我在网站(https://developers.google.com/ar/develop/java/sceneform/build-scene)之后没有使用相机和AR会话的情况下渲染了3D场景。

我想做的是在我从画廊中拿出选定的视频后,将视频放到绿色背景上。我知道如何导入视频并更改背景颜色(sceneView.setBackgroundColor(Color.MAGENTA);)

图像是这样的。 (https://developers.google.com/ar/develop/java/images/sceneview.png

我第一次想到,如果我在XML布局中的“ SceneView”后面找到一个视频视图,然后使背景透明,它将可以正常工作,但不能正常工作。

下面的代码不起作用。

    activity_ux.xml

  <VideoView
      android:id="@+id/videoView"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />


  <com.google.ar.sceneform.SceneView
      android:id="@+id/sceneView"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:alpha="1"
      />


    MainActivity.java

      sceneView = (SceneView) findViewById(R.id.sceneView);
      sceneView.setBackgroundColor(Color.TRANSPARENT);

您知道如何制作吗?你有什么办法实现我的目的吗?

1 个答案:

答案 0 :(得分:1)

目前还不支持此功能,AFAIK-在GitHub上有对此的公开请求:https://github.com/google-ar/sceneform-android-sdk/issues/263

您可以通过在场景中添加表面并在其中播放视频来实现所需的功能。方法是:

  • 创建一个外部纹理以播放视频
  • 创建一个MediaPlayer并将其表面设置为ExternalTexture的表面
  • 使用ExternalTexture构建新的可渲染对象
  • 创建一个节点并将其添加到场景中
  • 将节点的可渲染对象设置为您构建的新ModelRenderable

Scenefrom附带了一个示例,该示例可能会有所帮助-链接此答案:https://stackoverflow.com/a/56932459/334402