Android VideoView黑屏

2023-12-02

我一直在寻找一种方法来摆脱 VideoView 上令人讨厌的黑色初始屏幕。start()方法运行。

我尝试过在小部件上使用背景图像,但它根本无法按预期工作。 我还尝试将视频中第一帧的图像放在 VideoView 之上,并在start()方法。 添加 onPrepared 侦听器以启动视频,然后隐藏图像。这是可行的,但在过渡过程中有一个可怕的闪烁,我不知道如何消除它。


添加 MediaController 根本没有任何效果。问题仍然存在(我仍然看到黑色闪烁),并且我根本不想让视频控件可见。 我的代码如下所示:

    VideoView vSurface= (VideoView) findViewById(R.id.surfaceView1);
    vSurface.setVideoURI(Uri.parse("android.resource://com.mypackage/" + R.raw.video1));
    vSurface.setVisibility(View.VISIBLE);
    vSurface.setOnPreparedListener(this);
    vSurface.setDrawingCacheEnabled(true);
    vSurface.setOnErrorListener(this);

我遇到了同样的问题,并用上面接受的解决方案加上这个解决方案:

  @Override
  public void onPrepared(MediaPlayer mp) {
    mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
      @Override
      public boolean onInfo(MediaPlayer mp, int what, int extra) {
        Log.d(TAG, "onInfo, what = " + what);
        if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
          // video started; hide the placeholder.
          placeholder.setVisibility(View.GONE);
          return true;
        }
        return false;
      }
    });

我认为 onPrepared 只是意味着视频已准备好播放,但并不意味着视频开始播放。如果在onPrepared中隐藏占位符,屏幕仍然显示黑屏。

在我的 Note3 和 Nexus 上,这个解决方案运行良好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android VideoView黑屏 的相关文章

随机推荐

  • jqGrid colmodel 在 loadComplete 中的更改

    经过 3 个小时的谷歌搜索后 我请求你的帮助 我的页面上有一个 jqGrid grid 的重要选项 listU05 jqGrid url u05json json datatype json mtype POST colModel name
  • Objective C 使用 JNI 调用 Java 方法

    有人可以告诉我如何从 Objective C 调用 Java 方法吗 更详细地说 这实际上是我想做的 1 首先从java端调用目标C 在此调用期间我想获得对java对象的引用 2 稍后我希望 Objective C 使用上一步中获得的引用来
  • Ember 1.10 中的助手损坏

    我正在使用自定义 Handlebars 助手来扩展 if 块的功能 在 Ember 1 10 中 这不再起作用 因为没有允许绑定到该属性的 Ember Handlebars bind 属性 Ember Handlebars register
  • 如何为给定数组创建跨度列表

    假设我有一个看起来像这样的对象 var users user1 user2 对于这个对象 我想创建一个像这样的跨度列表 span user1 span span user2 span 我确实尝试了以下代码 span span text us
  • java 使用比较器和交换函数进行排序

    我需要使用自定义比较器和交换功能进行排序功能 我自己可以写一个 但我想知道是否其他人还没有这样做 Java运行时包含许多专门的排序函数 用于对基本类型 对象等数组进行排序 但它们都不以交换函数作为参数 谷歌搜索也没有找到任何有用的东西 pu
  • Sphinx 自动摘要生成的表中的自动换行

    我使用 Sphinx 为我的项目生成文档 扩展名为autosummary 它生成一个表 其中包含我的模块名称及其摘要 这是结果的图像 然而 行太长 我们必须使用滑块来阅读整个描述 我想将描述文本换行 以摆脱滑块 我到处寻找 却一无所获 我尝
  • AdvertisingIdClient.getAdvertisingIdInfo(context) 正在抛出 NoClassDefFoundError

    我正在尝试使用 AdvertisingIdClient 获取我的 AIR 应用程序的广告 ID 所以我确实喜欢AdvertisingIdClient Info adInfo AdvertisingIdClient getAdvertisin
  • 为什么使用 React Hook 表单时表单测试失败?

    我正在使用react hook form来构建一个表单 该表格运行良好 但测试未通过 当我不使用时测试通过react hook form然后直接提交
  • Hibernate批处理有什么用

    我是休眠新手 我对休眠批处理有疑问 我读了一些他们说的休眠批处理教程 Session session SessionFactory openSession Transaction tx session beginTransaction fo
  • Opera 的 DragonFly 和 Extensions 还会存在于 Webkit 世界中吗?

    我刚刚看到 Opera 将停止使用 Presto 并切换到 WebKit 那么 DragonFly 是否仍然存在 或者将被 Chrome Inspector 取代 扩展也怎么样 是的 蜻蜓歌剧院仍然存在 Opera 15 当前的测试版包括
  • 在 JavaScript 中将多个分号替换为单个分号

    我尝试在 javascript 中删除多个分号 替换为单个分号 code var test test1 test2 test3 test4 test5 test6 test7 test8 test9 test replace 但没有得到正确
  • 使用 RODBC 包将数据框导出到 SQL Server

    我在用RODBCR 中的包用于从 SQL Server 数据库导入 导出数据帧 虽然导入没有问题 我不知道如何将数据框的内容导出到现有的 SQL 表中 我正在尝试使用sqlQuery 包中提供了函数 但我不知道如何在表中插入多条记录 有关如
  • 缺少更新 GCloud 上静态 ReactJS 站点的步骤

    人们可能会认为简单地替换与应用程序关联的存储桶中的内容就会更新应用程序 但事实并非如此 I have a site that I deployed yesterday I created the bucket then in the com
  • 有没有办法检查 int 是否是 C# 中的合法枚举?

    我读过一些 SO 帖子 似乎缺少最基本的操作 public enum LoggingLevel Off 0 Error 1 Warning 2 Info 3 Debug 4 Trace 5 if s LogLevel log LogLeve
  • 如何让 Chrome 使用范围 http 标头在音频中进行搜索?

    尽管 可查找 数量声称为 100 但看起来 Chrome 在清理超过缓冲 加载持续时间时会从文件开头开始下载 我放置了一个演示页面 硬编码为存储在 s3 上的 59 分钟音频文件 但在其他方面与 jPlayer 演示相同 http beta
  • 文档在 NuGet 包中消失

    我用 C 编写了一个类库 需要将其推送到私有 NuGet 服务器 v3 4 1 0 我用 XML 文档注释装饰了我的类和方法 XML 文档文件选项被选中Build在项目属性面板的选项卡中 项目构建成功 并在项目的根文件夹中生成与程序集同名的
  • Python:可视化数据直方图上的正态曲线

    预先感谢您的任何帮助或提示 我正在尝试可视化我的数据框列之一的拟合法线 到目前为止 我已经能够通过以下方式绘制直方图 df radon adj hist bins 30 我有这个 template 但我遇到了错误 import pylab
  • 通过 Intent 共享照片时 EXIF 位置数据被删除

    我最近将我的应用程序切换到范围存储 但是 我注意到 当我从应用程序内共享图像 通过 Intent 时 GPS 位置数据将从图像的 Exif 元数据中删除 我知道范围存储对访问图像的 Exif 位置数据有一些限制 并且我知道该权限
  • 如何使用 DrawerLayout 在 ActionBar/Toolbar 上方和状态栏下方显示?

    我在新材料设计中看到过侧面导航规格您可以在操作栏上方和状态栏后面显示抽屉 我怎样才能实现这个 框架和支持库中的新功能正是允许这样做 共有三块 拼图 Using Toolbar这样您就可以将操作栏嵌入到视图层次结构中 Making 抽屉布局
  • Android VideoView黑屏

    我一直在寻找一种方法来摆脱 VideoView 上令人讨厌的黑色初始屏幕 start 方法运行 我尝试过在小部件上使用背景图像 但它根本无法按预期工作 我还尝试将视频中第一帧的图像放在 VideoView 之上 并在start 方法 添加