我正在使用GL_OES_EGL_image_external扩展来播放OpenGL视频。问题是在某些设备上,视频尺寸超过了OpenGL的最大纹理尺寸。有什么方法可以动态处理这个问题,例如动态缩小帧或我是否必须预先缩小视频大小?
答案 0 :(得分:0)
如果你真的在OpenGL ES中达到最大纹理尺寸(FWIW,我相信这对于最近的设备大约是2048x2048)那么你可以做一些事情:
您可以在setVideoScalingMode(VIDEO_SCALING_MODE_SCALE_TO_FIT)
上设置MediaPlayer
。我相信这会将视频解析扩展到与其相关联的SurfaceTexture
/ Surface
的大小。
你可以选择播放四个视频,然后将它们分开TEXTURE_EXTERNAL_OES
,然后在GL中单独渲染这四个纹理。然而,这可能会破坏你的表现。
如果我看到错误消息和代码的某些上下文,我可能会提供更多信息。