Google VR SDK(Unity) - GvrVideoPlayerTexture交换网址

时间:2017-01-23 19:43:26

标签: c# android unity3d google-vr google-vr-sdk

我正在使用Google VR SDK for Unity尝试使用SDK附带的组件构建一个简单的360视频查看器。我尝试扩展他们的PanoVideoSample,以便在用户从菜单导航时动态更改源视频。

我无法通过代码更改GvrVideoPlayerTexture的网址。在他们的演示场景(VideoDemo)中,他们有一个包含视频球的PanoVideoSample,您可以在检查器面板中编辑GVRVideoPlayerTexture脚本以指向正确的视频URL。

我想在C#中动态设置视频网址,而不是硬编码一堆单独的视频领域,然后隐藏/显示它们。我几乎可以使用以下代码。

char

上面的代码似乎有效,但问题是在设置url并重新初始化纹理后,videoSphere上的纹理变为白色。我可以看到新视频加载,我可以听到新视频的音频,但场景只显示白色纹理。 See the output here

我想知道我是否错过了GvrVideoPlayerTexture上的关键步骤,或者是否有其他调用来更新用于渲染场景的StereoPanoSphereMaterial。这个SDK很新,似乎没有人写这篇文章,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

我最终在Google VR文档(Streaming Video Support)的文档中找到了我的问题的答案。 我第一次尝试时仍然不完全清楚我做错了什么,但这是对我有用的代码。

videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().videoURL = urls [index];
    videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().videoType = GvrVideoPlayerTexture.VideoType.Other;
    videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().videoProviderId = string.Empty;
    videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().videoContentID = string.Empty;
    videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().CleanupVideo ();
    videoSphere.GetComponentInChildren<GvrVideoPlayerTexture> ().ReInitializeVideo ();