这段代码曾用于我的Nexus 7 2012 KitKat:
int[] maxSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxSize, 0);
Run Code Online (Sandbox Code Playgroud)
在KitKat中我可以正确获取最大像素值,但在升级到工厂映像Lollipop后,这段代码会导致问题,因为它只返回0.当达到此方法时,logcat显示此输出:
E/libEGL? call to OpenGL ES API with no current context (logged once per thread)
Run Code Online (Sandbox Code Playgroud)
我已经android:hardwareAccelerated="true"在我的Manifest.xml中了.是否有任何我不知道的API更改,导致上述代码无法使用?请指教.
我正在尝试使用 mediaCodec 从 openGl ES 表面创建 mp4 视频。我有一个eglSurface,该eglSurface 的源表面是MediaCodec 输入表面。
我可以为eglSurface 设置不同的尺寸,当一种尺寸(宽度或高度)太大时:例如宽度= 5000 且高度= 512,MediaCodec 崩溃。
这是崩溃日志
android.media.MediaCodec$CodecException: Error 0xfffffc0e
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:588)
Run Code Online (Sandbox Code Playgroud)
....
在某些设备(Galaxy s7 edge)上它不会崩溃,但生成 videoView 后不会播放视频。
对于小尺寸(例如屏幕尺寸),它可以在所有设备上正常工作