草庐IT

Android ImageReader aquireLatestImage 偶尔为空

coder 2023-11-27 原文

我有一个能够捕获屏幕内容的应用设置。但是,有时,我会从 aquireLatestImage 返回一个 null 值。 .文档说它将返回“如果没有可用的图像数据则为 null”。

我很想知道没有可用图像数据的原因是什么?

编辑:据我所知,这种情况在 LG 设备上最常发生...

编辑 2:我遇到的情况是在先前返回有效图像值之后返回空值。并且它继续返回空值。对于非 LG 设备,偶尔会返回空值。对于 LG 设备,似乎一旦它返回一个 null,其余的将是 null。

编辑 3:包括一些代码

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

Display display = wm.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics );

ImageReader imageReader = ImageReader.newInstance(displayMetrics.widthPixels, displayMetrics.heightPixels, PixelFormat.RGBA_8888, 2);

virtualDisplay = mediaProjection.createVirtualDisplay("NetCountableVirtualDisplay",
        displayMetrics.widthPixels,
        displayMetrics.heightPixels,
        displayMetrics.densityDpi,
        DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
        imageReader.getSurface(),
        null,
        null);

最佳答案

文档说“如果没有可用的图像则返回空值” 这意味着您在它能够获取新图像之前调用它,因此它不会浪费资源向您发送两次相同的图像,它只会返回 null。

关于Android ImageReader aquireLatestImage 偶尔为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47047432/

有关Android ImageReader aquireLatestImage 偶尔为空的更多相关文章

  1. ruby-on-rails - 如果为空或不验证数值,则使属性默认为 0 - 2

    我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val

  2. ruby - 从谷歌开发者网站下载后,client_secret.json 为空 - 2

    我正在尝试从googleAPI下载client_secret.json。我正在执行https://developers.google.com/gmail/api/quickstart/ruby中列出的步骤.使用此向导在GoogleDevelopersConsole中创建或选择项目并自动启用API。在左侧边栏中,选择同意屏幕。选择电子邮件地址并输入产品名称(如果尚未设置),然后单击“保存”按钮。在左侧边栏中,选择凭据并点击创建新客户端ID。选择应用程序类型已安装应用程序,已安装应用程序类型为其他,然后单击“创建客户端ID”按钮。点击新客户端ID下的下载JSON按钮。将此文件移动到您的工作

  3. ruby - 有没有更简洁的方法来检查 PGResult 是否为空? - 2

    我正在使用pggem从Ruby与PostgreSQL对话。有没有检查是否没有结果比使用res.ntuples==0更好的方法?conn=PGconn.connectconfigcmd="select*fromlabelsinnerjoinlabels_mailusing(label_id)"+"wherelabels_mail.mail_id=$1andlabels.name=$2"res=conn.exec(cmd,[mail_id,mailbox])ifres.ntuples==0# 最佳答案 元组,打字错误?使用zero?比=

  4. ruby - @users 变量为空。忘记为 will_paginate 传递集合对象? - 2

    问题localhost:3000/users/不会显示我谦虚地进入,因为我是第一次尝试通过Rails教程。我在第10章,我已经花了5个小时解决这个问题。当我尝试访问localhost:3000/users/时出现错误(我相信这与factory_girl有关)解释了@users变量为空并且我忘记了为will_paginate传递一个集合对象。我目前在第10章第10.23节,每次运行时:$bundleexecrakedb:reset$bundleexecrakedb:populate$bundleexecrakedb:test:prepare我在解释时遇到错误rakeaborted!Fac

  5. ruby-on-rails - 参数缺失或值为空 - 2

    我是Rails新手。得到下面的错误。我了解问题所在,但不确定如何解决?错误-参数缺失或值为空:客户defcustomer_paramsparams.require(:customer).permit(:first_name,:last_name,:email,:password,:password_confirmation)endendDetailsController.rbclassMy::Account::DetailsController:showelseredirect_tomy_account_details_path,:notice=>'Accountdetailsupda

  6. ruby-on-rails - 如果参数为空,则 Text_field_tag 默认值? - 2

    如果params[:date]的参数为空,我希望我的text_field_tag将当前日期作为默认值,这是我目前的代码:我想要类似:谢谢 最佳答案 您可以简单地使用“或”运算符。如果params[:end]为空,它将使用Time.now。 关于ruby-on-rails-如果参数为空,则Text_field_tag默认值?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/35520

  7. Ruby 的 ARGV 在 Windows 上可以为空,具体取决于运行脚本的方式 - 2

    我的演示.rb:putsARGV.sizeARGV.eachdo|a|puts"Argument:#{a}"end结果取决于我们如何运行脚本:>demo.rbfoobar0>rubydemo.rbfoobar2Argument:fooArgument:bar为什么会这样?可以用这个做点什么吗?编辑:感谢所有回复!这是我的设置:>assoc.rb.rb=rbFile>ftyperbFilerbFile="c:\ruby-1.8.6\bin\ruby.exe""%1"%*所以看起来是对的。但是我发现了>demo.rbfoobar使用这样的命令行启动进程:"C:\ruby-1.8.7\bin

  8. ruby - Jekyll:检查帖子内容是否为空 - 2

    我在Jekyll项目中有一系列帖子,其中一些只有标题,一些有标题和内容。我想在每种情况下对帖子做不同的事情。例如:{%forpostinsite.categories.publications%}{{post.title}}{%ifpost.content==""orpost.content==nilorpost.content==blank%}Nothinghere.{%else%}{{post.content}}{%endif%}{%endfor%}但是if语句实际上并没有捕获空帖子。我的条件基于thispage,但是这3种可能性都没有捕捉到空帖子。关于如何处理这些帖子有什么想法吗

  9. ruby - 如何测试一个 block 是否为空? - 2

    我有一段代码,我想在不运行代码块内部的情况下测试正文是否为空。这可能吗? 最佳答案 sourcifygem添加了一个Proc#to_source方法:>>require'sourcify'=>true>>p=Proc.new{}=>#>>p.to_source=>"proc{}"一旦将block作为字符串,就很容易看出花括号之间是否有注释(或只有空格)。 关于ruby-如何测试一个block是否为空?,我们在StackOverflow上找到一个类似的问题: h

  10. ruby-on-rails - 在 ruby​​/rails 中,如何对日期有时可能为空的日期值进行排序? - 2

    我想按游戏日期对我的游戏进行排序,但有时游戏日期可能为空,我会得到一个异常:undefinedmethod`to_datetime'fornil:NilClass@games=@teams.reduce([]){|memo,team|memo+team.games}.sort_by(&:game_date)有什么好的方法吗? 最佳答案 如果您只想删除没有日期的条目,最简单的解决方案-ar.select(&:date).sort_by(&:date)在末尾添加nils可以用ar.select(&:date).sort_by(&:dat

随机推荐