使用OpenGL ES 2.0的iOS 360视频

时间:2016-05-19 17:57:24

标签: ios iphone opengl-es opengl-es-2.0 opengl-es-3.0

我有一个使用OpenGL ES 3.0的应用程序,使用天空球体实现播放360个视频。我想使用OpenGL ES 2.0来支持更多设备。

在ViewController.swift中,我在方法setupContext()中创建了EAGLContext,它与.OpenGLES3一起使用,但是当我尝试使用.OpenGLES2时,我只看到黑屏。没有错误消息,我无法辨别OpenGL ES 2.0中不支持哪些API函数。

context = EAGLContext(API: .OpenGLES3)
EAGLContext.setCurrentContext(context)

如何使用OpenGL ES 2.0使用天空球显示360个视频?主要实现在Skysphere.swift中。感谢。

示例应用可在此处找到:https://github.com/devinshively/TestVideoPlayer

1 个答案:

答案 0 :(得分:0)

问题在于OpenGL 3会自动推断出像素的宽度和高度。要使用OpenGL 2,我需要定义像素缓冲区属性kCVPixelBufferWidthKey和kCVPixelBufferHeightKey。我用修复程序更新了测试仓库。

let pixelBufferAttributes = [kCVPixelBufferPixelFormatTypeKey as String : NSNumber(unsignedInt: kCVPixelFormatType_32BGRA),
                                       kCVPixelBufferWidthKey as String : 1024,
                                      kCVPixelBufferHeightKey as String : 512]