android-auto - 在 Android Auto 中剪辑视频以完全填满屏幕
问题描述
现在,我正在开发我们自己的 Android Auto 项目。我遇到了一个问题。我添加了 3 个支持的 VideoConfiguration。(1920 X 1080, 1280 X 720, 800 X 480) 我们的车载屏幕尺寸是 1920 X 720。当我在车里启动我的应用程序后,我注意到手机告诉我们手机(或 MD)的视频输出是什么1920 X 1080。我也设置了查看区域为1920 X 720,或者换句话说,内容区域为1920 X 720。最后显示了投影视频,但不幸的是,视频被强行拉伸了。所有这些图标,文字都变形了,好像我的配置没用一样。我的问题是,如何调整我的参数,以便正确显示 MD 的投影内容。
我问了谷歌的服务台,他们告诉我将边距分别设置在顶部和底部180。但我试过了,如下所示,
VideoFrameRateType frameRate = (fps == 30) ? VideoFrameRateType.VIDEO_FPS_30 : VideoFrameRateType.VIDEO_FPS_60;
Protos.Insets.Builder insetsBuilder = Protos.Insets.newBuilder().setTop(180).setBottom(180);
UiConfig.Builder uiBuilder = UiConfig.newBuilder().setMargins(insetsBuilder);
VideoConfiguration.Builder builder = VideoConfiguration.newBuilder()
// .setUiConfig(uiBuilder) .setCodecResolution(codecResolution) .setFrameRate(frameRate) .setWidthMargin(0) .setHeightMargin(360) .setDensity(213) .setRealDensity(170) .setVideoCodecType(MediaCodecType.MEDIA_CODEC_VIDEO_H264_BP) .setDecoderAdditionalDepth(decoder)。 setViewingDistance(viewingDistance) .setPixelAspectRatioE4(Math.round(pixelAspectRatio * 1e4f));
我尝试设置 heightMargin,或者添加 UiConfig 的 setTop(180).setBottom(180),没有什么能解决问题。
或者,有什么我可以做的吗?我以编程方式创建 MediaFormat format = MediaFormat.createVideoFormat?
解决方案
我想我已经自己把东西收拾好了。首先,我们需要调整布局属性,从 match_parent 到 1920px & 1080px。
其次,在创建 VedioConfiguration 之前,我们应该新建 UiConfig 并设置其顶部和底部以匹配您的内容区域。
推荐阅读
- python - 用区域内最接近的值填充图像
- java - 如何更快地安装 Hyperledger Fabric java 智能合约(我想避免超时)?
- ionic-framework - 在验证离子反应时重定向/渲染不同的组件
- python - 如何使用表单集自动使用登录用户填充我的 Django 模型“updated_by”字段?
- html - 如何让 flex 网格随页面大小缩放而不是使用 css 换行
- python - 使用 Python 批量重命名具有不同部分的 txt 文件
- php - ReadBeanPHP SQL 查询没有通过。有人看错了吗?手动做了一切,但它不起作用
- sed - 将 C++ 风格的正则表达式与 sed 匹配?
- javascript - Slack 身份验证后无法重定向到“/api/auth/slack/callback”
- python - 拆分多行字符串时忽略换行符