0

我在网站 ( 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);

你知道怎么做吗?你有什么想法接近我的目的吗?

4

1 回答 1

1

目前不支持,AFAIK - GitHub上有一个开放的请求:https ://github.com/google-ar/sceneform-android-sdk/issues/263

您可以通过在场景中添加表面并在其上播放视频来实现您想要的效果。方法是:

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

Scenefrom 中包含一个示例,可能会有所帮助 - 此答案中的链接:https ://stackoverflow.com/a/56932459/334402

于 2019-08-01T11:18:30.957 回答