1

我正在尝试在 iOS 中探索 Google VR(虚拟现实)SDK。

参考:https ://github.com/googlevr/gvr-ios-sdk

所以他们在 Obj-C 中有示例,我已经在 Swift 中进行了转换。出现无法预览 VR 视频的问题(如图 SS1),出现黑屏 SS2。

SS1:预期

SS1

SS2:实际

在此处输入图像描述

我也尝试调试并发现

谷歌代码

 GVRRendererViewController *viewController = self.childViewControllers[0];
  GVRSceneRenderer *sceneRenderer = (GVRSceneRenderer *)viewController.rendererView.renderer;
  GVRVideoRenderer *videoRenderer = [sceneRenderer.renderList objectAtIndex:0];

我的代码

if let vc = self.children.first as? GVRRendererViewController {
                self.vrManager!.setupGVR(vc)
            }

func setupGVR(_ gvrRendererVC: GVRRendererViewController) {
        let sceneRenderer = gvrRendererVC.rendererView.renderer as! GVRSceneRenderer
        
        if sceneRenderer.renderList.count() > 0,
            let videoRenderer = sceneRenderer.renderList.object(at: 0) as? GVRVideoRenderer {
            videoRenderer.player = self.avPlayer
        }
    }

在这里我越来越sceneRenderer.renderList空了。在他们的 SDK 中很好。让我知道什么错误。

我的演示项目:https ://github.com/Abhishek9634/VRDemo

4

1 回答 1

1

PS:我不确定它是否正确,但到目前为止工作正常

func setupGVR(_ gvrRendererVC: GVRRendererViewController) {

    guard let sceneRenderer = gvrRendererVC.rendererView.renderer as? GVRSceneRenderer else {
        return
    }

    if sceneRenderer.renderList.isEmpty {
        let videoRenderer = GVRVideoRenderer()
        videoRenderer.player = self.avPlayer
        videoRenderer.setSphericalMeshOfRadius(50.0,
                                               latitudes: 12,
                                               longitudes: 24,
                                               verticalFov: 180,
                                               horizontalFov: 360,
                                               meshType: .stereoTopBottom)
        sceneRenderer.renderList.add(videoRenderer)
    } else {
        if let videoRenderer = sceneRenderer.renderList.object(at: 0) as? GVRVideoRenderer {
            videoRenderer.player = self.avPlayer
        }
    }

}
于 2019-01-18T09:36:36.567 回答