gpt4 book ai didi

android - Display.getSupportedModes() 在 4K Android TV 上仅返回 1080p 显示模式

转载 作者:太空狗 更新时间:2023-10-29 14:39:27 29 4
gpt4 key购买 nike

我最近在我的应用程序中为 Android TV 用户添加了对 4K 的支持。我的测试设备是SONY KD-49XF9005。虽然内置的图像查看器以及 YouTube 可以毫无问题地显示 4K,但到目前为止我还没有运气让它在我的应用程序中运行。

我的应用使用 GLSurfaceView 来呈现图像。我关注了the 4K Display Mode API guide ,并且我希望能够选择我的电视上可用的一种 4K 显示模式,以便我的 GLSurfaceView 可以在物理分辨率下绘制(如下所示的代码 fragment )。但是,API 不断返回给我一种且只有一种显示模式,即 1080p。这真的让我很困扰,硬件应该支持它,因为其他内置应用程序可以使用 4K,为什么它不为我的应用程序返回 4K 显示模式?

我还通读了所有相关的 Android TV 开发者指南,但没有找到任何特别之处。如果有人能给我一些启发,我将不胜感激。谢谢!

public static void select4kDisplayMode(Context context, Window window) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return;
}

WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
Display.Mode[] modes = display.getSupportedModes();
if (modes == null) {
return;
}

Display.Mode selected = null;
long max = 0;
for (Display.Mode mode : modes) {
FL.d(TAG, "available display mode: Mode %d: %dx%d/%.1ffps", mode.getModeId(),
mode.getPhysicalWidth(), mode.getPhysicalHeight(),
mode.getRefreshRate());
long val = mode.getPhysicalWidth() * mode.getPhysicalHeight();
if (val > max) {
max = val;
selected = mode;
}
}
if (selected != null) {
WindowManager.LayoutParams params = window.getAttributes();
params.preferredDisplayModeId = selected.getModeId();
window.setAttributes(params);

FL.d(TAG, "selected display mode: Mode %d: %dx%d/%.1ffps", selected.getModeId(),
selected.getPhysicalWidth(), selected.getPhysicalHeight(),
selected.getRefreshRate());
}
}

最佳答案

我是中国的一名程序员,我发现 Android TV 仅支持 Android 应用程序的 1080p 分辨率。我很困惑,我打印了电视的参数,你可以看到文档,它表明你可以在 Android 6.0 中使用 API 渲染 4K 视频,但 native 应用程序只支持电视中的 1080p。这里:android 6.0 how supports 4K

关于android - Display.getSupportedModes() 在 4K Android TV 上仅返回 1080p 显示模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50921330/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com