Android 原生代码:将 Surface 分配给特定显示器

2024-01-27

我正在寻找一种将 Surface(本机窗口)对象分配给显示器的方法,以便提交到该本机窗口的缓冲区将渲染到该特定显示器而不是主显示器。我想用本机代码来做到这一点。

在Java中,可以通过使用Presentation API来完成。

在本机代码中我尝试调用SurfaceComposerClient::setDisplaySurface(),将显示的传递给它IBinder对象(由返回SurfaceComposerClient::getBuiltInDisplay()),以及IGraphicBufferProducer对象(由返回Surface::getIGraphicBufferProducer())。 问题是显示变为空白,即使我将缓冲区提交到本机窗口,也不会显示任何内容。

如果我不打电话SurfaceComposerClient::setDisplaySurface(),然后本机窗口呈现到主显示器。

示例代码:

sp<IBinder> display(SurfaceComposerClient::getBuiltInDisplay(1));

SurfaceComposerClient::getDisplayInfo(display, &displayInfo);

surfaceControl = surfaceComposerClient->createSurface(String8(""), displayInfo.w, displayInfo.h, HAL_PIXEL_FORMAT_RGB_565);

sp<Surface> surface = surfaceControl->getSurface();

sp<IGraphicBufferProducer> iGraphicBufferProducer = surface->getIGraphicBufferProducer();

SurfaceComposerClient::setDisplaySurface(display, iGraphicBufferProducer);

有谁知道这是否可以在本机代码中完成,如果可以的话如何实现?

Thanks


None

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

Android 原生代码:将 Surface 分配给特定显示器 的相关文章

  • Android 库模块使用 proguard

    我想创建一个安全的库模块 没有人可以从 apk 文件中提取代码 但是当尝试在库 gradle 中启用 proguard 时 出现错误包不存在 然后我在 proguard 规则文件中添加以下行 keep class com alprocr k
  • 如何在 AndroidEnvironment 构建文件的环境变量中指定下载目录的路径

    使用 Visual Studio 2022 17 2 0 Preview 1 0 我目前正在尝试创建一个 MAUI 应用程序 该应用程序已经在 Windows 上运行良好 也可以在 Android 下运行 该应用程序使用一个库 SaxonC
  • 如何从命令行向 Android 项目添加外部 jar 库

    我正在尝试构建一个具有一些依赖项的 Android 项目 jar 文件位于 lib 目录中 我可以通过将这些 jar 文件添加到我的类路径来构建项目 但当然它会在模拟器中强制关闭 因为这些库不存在 我正在使用 ant 从命令行执行此操作 n
  • 在 Android 中不断更新新的 JSON

    我有不断变化的 JSON 我需要在 android 中不断更新更改 我该怎么做 我的Android代码是 r getImage JSONObject data new JSONObject r String a data getString
  • Android - 同一行中的两个按钮填充整个宽度

    我在定义相对布局时遇到了一些问题 我有一个带有滚动的列表视图 并且两个按钮始终在列表视图的底部可见 我只是希望我的两个按钮有 50 的宽度 填充该线 这是我的代码
  • 在 Android 中向下滚动列表视图时强制关闭

    当我尝试在片段活动中向下滚动列表视图时 出现强制关闭错误 其中有 1 个图像视图和 2 个文本视图 我是android的初学者 所以除了android最常用组件的基本场景之外没有太多的知识 没有位图 OOM 错误 因为我也没有使用图像进行了
  • 将对象数组作为请求中的 url 参数传递

    我需要将一个对象数组 每个对象有 2 个字段 作为 http 请求的 url 中的参数 我该怎么做以及这个链接应该是什么样子 您可以使用您的结构创建一个 xml 即一个对象数组 每个对象都有两个字段 然后将其转换为字符串 如下所示 举个例子
  • Urban Airship:默认状态栏通知的自定义图标

    Urban Airship 建议创建自定义通知CustomPushNotificationBuilder如果您想对状态栏通知进行任何修改 包括简单地更改图标 不幸的是 使用RemoteView因为通知会带来许多与定制制造商和 或特定于平台的
  • 从片段调用片段

    我想通过单击当前片段中的按钮来调用当前片段中的另一个片段 这是我的主要活动 import android app FragmentManager import android os Bundle import android support
  • 嵌套 CollectionView 和显示(使用 Visual Studio 2019、Xamarin XPlatform Android)

    嵌套 CollectionView 并在另一个中滚动 官方支持吗 显示这些集合问题 请参阅下面的我的数据模型和 XAML 代码 我没有可以放置生成的屏幕图像的站点 namespace Notes Models public class No
  • Android ImageView未加载

    我正在使用 android imageView 并将图像放入可绘制文件夹中 并将 imageView 源更改为该图像 但它没有在预览面板中显示图像 当我在 android studio 中打开图片时 它显示这样的错误 但我可以在电脑桌面上打
  • 将 .cer 格式的证书添加到 .bks 密钥库中

    我需要将 cer 格式的证书添加到 BKS 密钥存储中 SO 上对此进行了描述 如何将 cer 转换为 BKS https stackoverflow com questions 21284466 how to convert cer to
  • 以编程方式将图像添加到RelativeLayout

    我想通过代码添加各种相对布局到线性布局 每个相对布局由以下部分组成 左侧的图像视图 右侧旁边的文本视图 正好在中间 以及右侧的另一个图像 我必须使用从数据库读取的数据来添加它们 它必须使用relativelayout 因为我想在图像上使用一
  • 在Android中获取Fragment中的应用程序上下文?

    我已通过在一个活动中使用应用程序上下文将一些数据存储到全局类中 稍后我必须在片段中检索这些值 我已经做了类似的事情来存储在全局类中 AndroidGlobalClass AGC AndroidGlobalClass getApplicati
  • Android 11 - 访问我的应用程序 Android/Data 文件夹中的文件

    由于某种原因 我真的很挣扎 希望有人能帮助我指明正确的方向 我的目标是 Android 11 API 30 这似乎是所有问题的根源 降低目标可能对我有用 但谷歌似乎最终会迫使我走上这条路 所以我不妨弄清楚这一点 我的应用程序通常会按照标准写
  • 如何使用java.util.concurrent包实现后台线程?

    这是我首先使用的代码 但在最新的 Android 版本中AsyncTask类已被弃用并且 因此它没有响应 然后我使用了Thread类 但该类也不起作用 我想要与我得到的结果相同的结果AsyncTask班级 我知道我必须使用 java uti
  • indexoutofboundException :setSpan (2...2) 结束长度超出长度 1

    I ve a MultiAutoCompleteTextView当用户按空格键时 我在其中创建芯片文本的自定义控件 我不希望用户在文本框为空时最初输入空格 所以我放了一个inputFilter以防止用户最初放置空格 这是过滤器代码 priv
  • 永远不要关闭 Android SQLite 连接

    如果您根本不关闭连接会发生什么 我知道如果您不关闭它并尝试打开另一个单例 您会遇到异常 但是如果您有一个全局单例 并且您只是不关闭它 会发生什么情况 任何想法 时空连续体中形成了裂痕 威胁着宇宙中所有生命的灭绝 直到一群穿着鲜艳滑稽服装的人
  • 各种 Android 设备的应用程序背景大小

    我正在为所有 Android 设备的应用程序设计背景 我在想图像的大小 以像素为单位 是多少 从开发者网站我发现了以下等式 px dp dpi 160 那么 px 取决于两个变量 首先 dp 我们有 xlarge screens are a
  • Android 有类似 mechanize 这样的工具吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在创建一个 Android 应用程序 它必须在后台进行一些网上冲浪 以便为用户提供服务 我必须连接

随机推荐