在 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 的投影内容

我询问了 google 的服务台,他们告诉我将边距分别设置为 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(decoderAdditionalDepth) .setViewingdistance(viewingdistance) .setPixelAspectRatioE4(Math.round(pixelAspectRatio * 1e4f));

我尝试设置heightMargin,或者添加UiConfig的setTop(180).setBottom(180),都无法解决问题。

或者,有什么我可以做的吗?我以编程方式创建 MediaFormat format = MediaFormat.createVideoFormat?

解决方法

我想我已经自己收拾好了。 首先,我们需要调整我们的布局属性,从 match_parent 到 1920px & 1080px。

其次,在创建 VedioConfiguration 之前,我们应该新建 UiConfig 并设置其顶部和底部以匹配您的内容区域。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...