iOS Google VR SDK: невозможно просмотреть видео - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь изучить Google VR (виртуальная реальность) SDK в iOS.

Ссылка: https://github.com/googlevr/gvr-ios-sdk

Так что у них есть примеры в Obj-C, я конвертировал в Swift,Возникает проблема, из-за которой я не могу просмотреть VR-видео (как показано на SS1), появляется черный экран SS2.

SS1: ожидается

SS1

SS2: Фактический

enter image description here

Я также пытаюсь отладить и обнаружил, что

Google Code

 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

1 Ответ

0 голосов
/ 18 января 2019

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

}
...