我正在尝试在 iOS 中探索 Google VR(虚拟现实)SDK。
引用号:https://github.com/googlevr/gvr-ios-sdk
所以他们有 Obj-C 中的示例,我已经用 Swift 进行了转换。遇到无法预览 VR 视频(如图 SS1 所示)的问题,出现黑屏 SS2。
SS1:预计
SS2:实际
我也尝试调试并发现
Google 代码
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 中就很好了。
让我知道什么错误。
最佳答案
P.S:我不确定它是否正确,但目前工作正常
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
}
}
}
关于iOS谷歌VR SDK : Unable to preview Video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54229905/