- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Exoplayer 和 GL SurfaceTexture(来自 TextureView)来显示视频。我在视频播放中重复使用相同的表面。
我释放播放器并实例化一个新播放器。第二次显示 SurfaceTexture 时,它会显示上次视频中的旧纹理,直到播放器开始播放并用黑色填充 Surface。
我正在寻找一种方法来绘制一个黑色矩形来填充表面,但无法实现。
最佳答案
使用 Grafika 上的@fadden 链接,我制作了自己的脚本来清理表面。它与 API 16 兼容。
/**
* Clear the given surface Texture by attaching a GL context and clearing the surface.
* @param texture a valid SurfaceTexture
*/
private void clearSurface(SurfaceTexture texture) {
if(texture == null){
return;
}
EGL10 egl = (EGL10) EGLContext.getEGL();
EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
egl.eglInitialize(display, null);
int[] attribList = {
EGL10.EGL_RED_SIZE, 8,
EGL10.EGL_GREEN_SIZE, 8,
EGL10.EGL_BLUE_SIZE, 8,
EGL10.EGL_ALPHA_SIZE, 8,
EGL10.EGL_RENDERABLE_TYPE, EGL10.EGL_WINDOW_BIT,
EGL10.EGL_NONE, 0, // placeholder for recordable [@-3]
EGL10.EGL_NONE
};
EGLConfig[] configs = new EGLConfig[1];
int[] numConfigs = new int[1];
egl.eglChooseConfig(display, attribList, configs, configs.length, numConfigs);
EGLConfig config = configs[0];
EGLContext context = egl.eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, new int[]{
12440, 2,
EGL10.EGL_NONE
});
EGLSurface eglSurface = egl.eglCreateWindowSurface(display, config, texture,
new int[]{
EGL10.EGL_NONE
});
egl.eglMakeCurrent(display, eglSurface, eglSurface, context);
GLES20.glClearColor(0, 0, 0, 1);
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
egl.eglSwapBuffers(display, eglSurface);
egl.eglDestroySurface(display, eglSurface);
egl.eglMakeCurrent(display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE,
EGL10.EGL_NO_CONTEXT);
egl.eglDestroyContext(display, context);
egl.eglTerminate(display);
}
关于android - 用黑色矩形清洁 SurfaceTexture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30165223/
我对 unix 套接字(TCP 本地)有点困惑 我有一个服务器和一个客户端: client 通过套接字向服务器发送一些信息(使用send)多次 server 打印此数据(server 调用 recv
我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号。 对于每个符号,函数如下:.apply(lambda x: x.replace("",
我正在按照 http://nvie.com/posts/a-successful-git-branching-model/ 的建议进行独立项目 我使用以下代码发布了我的代码的版本 1: git che
我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号。 对于每个符号,函数如下:.apply(lambda x: x.replace("",
我正在按照 http://nvie.com/posts/a-successful-git-branching-model/ 的建议进行独立项目 我使用以下代码发布了我的代码的版本 1: git che
我想让我的 Controller 变薄,并将业务逻辑与其他操作分开。例如我有一个 Action : public function indexAction() { $languages = $
如何清理 react native 项目? 有什么方法可以像我们可以清理 xcode 项目一样清理 React Native 项目? 任何帮助将不胜感激! 最佳答案 一个 react-native 项
我创建了一组 jRadioButton, 每个按钮都有一个操作监听器,用于在单独的窗口中创建 JTable。 我希望当我按下另一个按钮时,框架将被清理,然后执行另一个JTable, ButtonGro
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this q
我有几项任务要在不共享数据的 AWS EMR 上执行,我想使用同一个 EMR 一个接一个地执行它们。有没有办法将正在运行的 EMR 清理回其初始状态(删除配置单元表,清理所有 HDFS 文件等)避免数
更新 bundle 后,您将拥有一些可能已过时的 gem——因为已安装该 gem 的更新版本。 bundle 可执行文件下没有这样的命令,即 bundle clean。如何摆脱这些过时的 gem ?
当我从命令提示符运行“mvn clean tomcat:run”(未指定任何 tomcat 版本)命令以运行我的 Web 应用程序时,它会下载 tomcat 6.0.29 版本依赖项,如下所示: 组织
我可以在我的 iOS 应用程序中使用干净的 c++ 版本的 openGL 吗?我想写一些基本的包装器,然后将我的 C++ 代码与这个包装器和 App 连接起来。或者我必须只使用 openGLES?使用
我是 Apache/mod_rewrite 的新手。我需要这样做 以下网址: http://www.example.com/applications/seo-friendly-text-for-app
有人能告诉我什么是清理不良 HTML 以便 BeautifulSoup 可以处理它的更好方法 - 应该使用 BeautifulSoup 的按摩方法还是使用正则表达式清理它? 最佳答案 我想我应该改写我
假设我有一个 Controller ,其中包含一个呈现 View 的操作。 View 需要数据来呈现。我知道以下方法来准备并将其发送到 View : 使用实例变量 class CitiesContro
我的 ASP.NET MVC 项目已推送到 Azure 网站,其中包含无效的额外 DLL。这导致项目无法正常运行。如果创建了一个新网站,它会完美运行。在本地清理项目并重新部署并不能解决问题。有没有办法
我尝试了很多变体,但无法实现此目的。一个示例(子 pom.xml): org.apache.maven.plugins maven-clean-plugin
我有一些关于 Vaadin 架构的简单问题。 Vaadin 文档声称它是一个 Single-Page Application (SPA)但是这怎么可能呢,因为页面是在服务器端渲染的,到处都是一些 Ja
我的 Dockerfile 看起来像 FROM python:3.7-slim # System setup ENV USER app ENV APP_DIR /home/app RUN userad
我是一名优秀的程序员,十分优秀!