问题描述
现在,我正在开发我们自己的 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 并设置其顶部和底部以匹配您的内容区域。