如果在Android的GLSurfaceView中的Renderer.onDrawFrame方法中丢失了约15毫秒,这可能是由于渲染间隔不稳定造成的。以下是一些可能的解决方法:
import android.view.Choreographer;
public class MyRenderer implements GLSurfaceView.Renderer {
private Choreographer choreographer;
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
choreographer = Choreographer.getInstance();
}
@Override
public void onDrawFrame(GL10 gl) {
choreographer.postFrameCallback(new Choreographer.FrameCallback() {
@Override
public void doFrame(long frameTimeNanos) {
// 在此处执行渲染逻辑
// ...
// 再次调度下一帧
choreographer.postFrameCallback(this);
}
});
}
// 其他方法...
}
@Override
public void onDrawFrame(GL10 gl) {
// 渲染逻辑
try {
Thread.sleep(15); // 添加15毫秒的延迟
} catch (InterruptedException e) {
e.printStackTrace();
}
}
请注意,这种方法可能会导致渲染的帧率降低,因为您会在每帧之间添加一个固定的延迟。
请根据您的应用程序的需求选择适合的解决方法。
上一篇:Android Glide无法从URL加载.jpg文件。
下一篇:Android glTexSubImage2D与GL_TEXTURE_EXTERNAL_OES问题(OpenGL + OpenCV + CameraX)